我正在写python中的csv,我想知道为什么我的输出文件在程序完成运行时是空白的.首先,这是我的代码:
reader = csv.reader(open(location, 'rU'), delimiter = ',', quotechar = '"')
writer = csv.writer(open('temp.csv', 'wb'), delimiter = ',', quotechar = '"')
writer.writerow(["test", "test", "test", "test", "test", "test", "test"])
count = 0
for row in reader:
if count != 0 and count < len(split):
writer.writerow([row[0], row[1], row[2], row[3], row[4], row[5], split[count-1]])
count = count + 1
Run Code Online (Sandbox Code Playgroud)
我知道一些事情:
在此先感谢您的帮助!
编辑:这是我正在使用的一些更新代码:
infile = open(location, 'rU')
outfile = open('temp.csv', 'wb')
reader = csv.reader(infile, delimiter = ',', quotechar = '"')
writer = csv.writer(outfile, delimiter = ',', quotechar = '"')
split = email_text.split('NEW MESSAGE BEGINS HERE')
count = 0
for row in reader:
if count != 0 and count < len(split):
writer.writerow([row[0], row[1], row[2], row[3], row[4], row[5], split[count-1]])
outfile.flush()
count = count + 1
infile.close()
outfile.close()
Run Code Online (Sandbox Code Playgroud)
你没有关闭文件.虽然如果您只是阅读文件,这可能会正常工作,但在编写文件时这样做绝对不是一个好主意.
使用上下文管理器:
with open(location, 'rU') as infile, open('temp.csv', 'wb') as outfile:
reader = csv.reader(infile, delimiter = ',', quotechar = '"')
writer = csv.writer(outfile, delimiter = ',', quotechar = '"')
...
Run Code Online (Sandbox Code Playgroud)
这可以确保在with退出块时关闭文件(即使是因为异常).