在python中编写一个新的文本文件

时间:2015-10-31 14:57:31

标签: python file python-3.x split

我正在编写遍历文本文件的代码,计算每行中有多少单词,并且无法将结果(每行包含一个数字的多行)放入新的文本文件中。

我的代码:

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()

但是我得到的文件将所有数字放在一行中。

如何将它们分隔到我正在制作的文件中?

3 个答案:

答案 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)