将我从文件中读取的每一行保存为另一个文件

时间:2014-07-08 17:57:14

标签: python file-io

我正在编写一个程序,它读取一个大文本文件的每一行,并将每一行保存为一个名为essay.txt的单独文件。也就是说,第一行应该保存为essay1.txt,第二行应该保存为essay2.txt等。一切正常,除了不保存文档中的一行,而是保存多行。

这是我的代码:

filename = r'/Users/d-sdf/test_erick/test/essays.csv'
f = open(filename)

a =1
line = f.readline()
while line:
    txtfile = open ("essay"+str(a)+".txt", 'w') # here I save each line as a file 
    a += 1 # This variable will change the file number
    txtfile.write(line) 
    line = f.readline()
    txtfile.close()

f.close()

2 个答案:

答案 0 :(得分:1)

你写的就是C语言,但Python的文件API要简单得多:

with open('/Users/d-sdf/test_erick/test/essays.csv') as csvfile:
    for i, line in enumerate(csvfile):
        with open("essay{}.txt".format(str(i+1)), "w") as txtfile:
            txtfile.write(line)

答案 1 :(得分:0)

使用csv模块并始终使用with上下文处理器来简化操作。您无需手动关闭文件。您的代码读取整个文件而不是一行的原因可能是因为csv中的行可能没有用换行符分隔。如果需要,请尝试以其他模式打开。

import csv

filename = r'/Users/d-sdf/test_erick/test/essays.csv'

with open(filename, 'rb') as csvfile:
    reader = csv.reader(csvfile, delimiter=',')
    i = 1
    for row in reader:
        with open("essay"+str(i)+".txt", 'w') as f:
            f.write(row)
        i+=1