file1 = open('/path/to/file1.txt', "r")
file2 = open('/path/to/file2.txt', "wa")
counter = 1
for line in file1:
new_string = str(counter) + '\t' + line
file2.write(new_string)
counter += 1
我想将一个数字添加到文件中每行的开头,并将此行逐行添加到新文件中。原始文件中有1189行文本,尽管进行了多次尝试,但新文件中只有1168行。这是怎么回事?python从文件中读取写入其他文件
我添加了一个打印语句(print str(counter)+“”+ line),原始文件中的所有行都打印出来,并在它们旁边打印出预期的数字。循环运行后,计数器变量为1190。
编辑: 在循环工作后插入file2.close(),所有1189行现在都在第二个文件中,但是为什么?
为什么?你必须关闭文件,这是怎么回事。当关闭文件时,表明您已完成工作,因此操作系统可以将所有更改“提交”到磁盘。换一种方式来看,如果没有“关闭”声明,每次写入内容时,程序都必须写入磁盘,这显然是效率低下的。 – mosh442
我可以理解,如果我们不关闭额外的信息可能会被写入文件,但为什么信息会被删除? – schnimmy
这里的关键是没有删除任何信息。当你的代码执行file2.write(new_string)时,这个写入不会进入文件。它进入缓冲区,然后刷新到文件。如果您不关闭文件,则可能会丢失缓冲区。 – mosh442