【发布时间】:2015-04-26 13:26:51
【问题描述】:
我在一个目录中有多个文件,我试图从中读取并将每个文件的内容保存到同一个数组中。
getFileNames 返回基目录中的所有文件名,并将它们正确返回并保存到allFiles 数组中。
我尝试了下面的代码,但它只返回第一个文件中的数据。实际上,数组文件只有一项,allFiles[0]。
basePath = '/home/resume_examples/'
allFiles = getFileNames(basePath)
for document in allFiles:
fileTexts = [getFileText(basePath + document)]
print fileTexts
我也试过了,但是数组里还有一项(最后读取的文件的内容)。
basePath = '/home/resume_examples/'
allFiles = getFileNames(basePath)
for document in allFiles:
fileTexts = []
fileTexts.append(getFileText(basePath + document))
print fileTexts[2]
我知道我的数组在每次迭代时都会被覆盖,但我不明白为什么即使 append 也不起作用。有人可以解释一下我应该如何在每次调用getFileText 函数时定义/填充我的数组吗?
【问题讨论】:
-
append在您的第二个示例中不起作用,因为您再次在循环的每次迭代中创建一个新列表...您需要将fileTexts = []outside(之前)循环,然后在循环中使用append -
@Anentropic:这似乎更像是一个答案而不是评论,不是吗?
-
为什么
fileTexts[2]可以包含少于 3 个项目?? -
@chapelo 实际上我的目录中有 24 个文件,所以我只是在测试该数组是否获取了超过 1 个文件的文本。
标签: python arrays python-2.7