我正在编写一个程序,它读取一个大文本文件的每一行,并将每一行保存为一个名为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()
答案 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