将Python列表写入文件 - 适用于朋友计算机但不适用于我的计算机

时间:2017-05-10 00:13:07

标签: python python-3.x

我编写了一个程序,其中我需要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

1 个答案:

答案 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)