import csv
fileno = 1
record_per_file = 5
lineno = 1
with open('C:/Users/contacts.txt', "r") as csv_file:
csv_reader = csv.reader(csv_file, delimiter='|')
with open('C:/Users/contactsextracted' + str(fileno) + '.csv', "w", newline='') as new_file:
csv_writer = csv.writer(new_file)
for line in csv_reader:
if lineno%record_per_file == 0:
fileno += 1
lineno += 1
with open('C:/Users/contactsextracted' + str(fileno) + '.csv',"w", newline='') as new_file:
csv_writer = csv.writer(new_file)
else:
csv_writer.writerow(line)
lineno += 1
Tags:
创建CSV writer
csv_writer = csv.writer(new_file)
时,new_file
必须引用打开的文件处理程序在19-20号线上你有 以open('C:/Users/contactsTracted'+str(fileno)+'.csv',“w”,newline='')作为新的\u文件: csv\u writer=csv.writer(新的\u文件)
这两行结束后,
new_file
关闭(因为with
块结束),并且csv_writer
不能再使用。当您尝试在第22csv_writer.writerow(line)
行使用它时,您会得到一个错误现在您可能会看到所有内容都工作了一段时间,因为您在第12-13行中使用了完全相同的变量名称。而这个
csv_writer
确实保持打开状态,并将工作一段时间,直到csv_writer
变量被您在第19行创建的新csv_writer
覆盖,然后关闭您要做的是将写入CSV writer的代码放入CSV writer
with
上下文中,如下所示我不完全确定你想做什么,但这会让你克服你所面临的错误。您可能还希望在for循环完成后使用csv_writer.writerows,而不是使用csvèwriter.writerow
相关问题 更多 >
编程相关推荐