我正在尝试将Python列表导出到.txt文件,但文本文件最终只有很少的行

zss*_*zss 1 python export

我有一个4196个元素的列表(List),都等于-1或1.我想将列表导出到.txt文件.这是我使用的代码:

file = open('file.txt','w')
for item in List:
     print>>file, item
Run Code Online (Sandbox Code Playgroud)

出于某种原因,.txt文件只有2870个元素.(当我尝试另一种导出列表的方式时,同样的事情发生了,但我知道有4196个元素!)

谢谢你的帮助,

扎克

Jos*_*Lee 11

您需要关闭该文件.您无法从行数中轻易判断,但我希望文件的大小为4096或8192,这暗示只刷新了整个块.在你打电话之后file.close(),应该写下其余的数据.

您可以使用with语句自动关闭文件:

with open('file.txt','w') as file:
    for item in List:
        print>>file, item
Run Code Online (Sandbox Code Playgroud)

  • +1,上下文管理器始终是处理文件的最佳方式.值得注意的是,以这种方式使用``print``有点奇怪 - 而且3.x中的功能不同 - 由于这些原因,你可能想要使用``file.write()``,哪个更清楚. (5认同)
  • @mgilson很奇怪可能是错误的选择 - 我不认为这是非常富有表现力的.一旦你看到``file.write(...)``你希望写一个文件,``print`` - 不是那么多.我只是没有真正看到它在``file.write(str(item)+"\n")``的好处 - 我更喜欢明确的选项而不是那么冗长,但那可能只是我. (2认同)