我正在编写遍历文本文件的代码,计算每行中有多少单词,并且无法将结果(每行包含一个数字的多行)放入新的文本文件中。
我的代码:
in_file = open("our_input.txt")
out_file = open("output.txt", "w")
for line in in_file:
line = (str(line)).split()
x = (len(line))
x = str(x)
out_file.write(x)
in_file.close()
out_file.close()
但是我得到的文件将所有数字放在一行中。
如何将它们分隔到我正在制作的文件中?
答案 0 :(得分:5)
您需要在每行后面添加一个新行:
out_file.write(x + '\n')
此外,作为处理文件的更加pythonic方式,您可以使用with
语句打开将关闭块末尾文件的文件。
而不是多次分配并将长度转换为字符串,您可以使用str.format()
方法在一行中执行所有这些作业:
with open("our_input.txt") as in_file,open("output.txt", "w") as out_file:
for line in in_file:
out_file.write('{}\n'.format(len(line.split())))
答案 1 :(得分:3)
在编写
时在文件中添加换行符 in_file = open("our_input.txt")
out_file =open("output.txt", "w")
for line in in_file:
line= (str(line)).split()
x=(len(line))
x=str(x)
out_file.write(x)
#Write newline
out_file.write('\n')
in_file.close()
答案 2 :(得分:0)
正如之前的答案所指出的那样,你需要写一个换行符来分隔输出。
这是编写代码的另一种方法
with open("our_input.txt") as in_file, open("output.txt", "w") as out_file:
res = map(lambda line: len(line.split()), in_file)
for r in res:
out_file.write('%d\n' % r)