我编写了一个程序,其中我需要3个数组(列表)来写入txt文件。当我在计算机上运行代码时,txt文件为空。我把它发送给了一个运行它的朋友,程序在他的计算机上填充了txt文件。
我接下来没有经验编码,需要txt文件来完成家庭作业。
注意:它今天早些时候在我的计算机上运行,尽管其中一个阵列没有写入该文件。但是,当我稍后再次运行它(在错误检查的代码中添加额外的打印语句之后),它再次没有写入txt文件。什么可能导致这种行为?我写入txt文件的代码如下:
import csv
.....
MyFile = open('BattSim.txt', 'w')
wr = csv.writer(MyFile)
wr.writerow(RedArmy)
wr.writerow(BlueArmy)
wr.writerow(BattleTime)
MyFile.close
答案 0 :(得分:2)
您是在交互式解释器(或非CPython解释器中,还是以某种奇怪的方式崩溃)中运行此操作?如果是这样,问题是你实际上没有flush
/ close
文件;你没有调用它就引用了close
方法。你想要MyFile.close()
(与parens打电话)。
或者,您使用with
语句来保证close
行为(即使中途抛出异常):
import csv
.....
# Use with statement to autoclose, and newline='' to follow csv module rules
with open('BattSim.txt', 'w', newline='') as MyFile:
wr = csv.writer(MyFile)
wr.writerow(RedArmy)
wr.writerow(BlueArmy)
wr.writerow(BattleTime)