繁体   English   中英

在Python上打印数组,字典,列表到文本文件

[英]Print an array, dict, list into a text file on Python

我正在尝试将文件名列表或字典打印到文本文件中。 它目前只返回列表中的第一项。 这些项目是从s3 Aws获取的。我使用的是Python 2.6

for obj in bucket.objects.filter(Prefix=prefix):
      s = obj.key
      with open('test.txt', 'w') as f:
          f.write(s)

这里的问题是, 对于每个项目,您创建一个文件(如果文件已经存在,您可以删除内容),然后写入s

所以你应该在这里交换事物的顺序:

with open('test.txt', 'w') as f:  # first open the file
    for obj in bucket.objects.filter(Prefix=prefix):  # then iterate
        f.write(obj.key)

因此我们保持文件句柄处于打开状态,并且每个项目都将被写入。 一个潜在的问题是在写入对象的键后不会写新行 我们也可以通过写一个新行来做到这一点:

with open('test.txt', 'w') as f:
    for obj in bucket.objects.filter(Prefix=prefix):
        f.write(obj.key)
        f.write('\n')

无论何时打开文件进行写入,都会删除先前的内容并写入新文本。 因此,在这种情况下,您将删除在下一次迭代中写入文件的任何内容。 您可以这样做或以“追加”模式打开文件并继续您所写的内容。

f= open("test.txt", "w")
for obj in bucket.objects.filter(Prefix=prefix):
      s = obj.key
      f.write(s)
      f.write('\n)
f.close()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM