在 Python 上将数组、字典、列表打印到文本文件中

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

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

从 s3 Aws.I' 获取项目
for obj in bucket.objects.filter(Prefix=prefix):
      s = obj.key
      with open('test.txt', 'w') as f:
          f.write(s)

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

所以你应该交换一下这里的顺序:

<b>with open('test.txt', 'w') as f:</b>  # first open the file
    <b>for obj in bucket.objects.filter(Prefix=prefix):</b>  # 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)
        <b>f.write('\n')</b>

每当您打开一个文件进行写入时,以前的内容将被删除并写入新的文本。因此,在这种情况下,您将擦除在下一次迭代中写入文件的所有内容。您可以通过这种方式进行,或者以 "append" 模式打开文件并继续您所写的内容。

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