在Python中迭代填充数组

时间:2015-04-26 13:26:51

标签: python arrays python-2.7

我在一个目录中有多个文件,我试图从中读取并将每个文件的内容保存到同一个数组中。

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函数来解释我应该如何定义/填充我的数组吗?

2 个答案:

答案 0 :(得分:2)

每次迭代都会将列表重置为[]。只在迭代之前执行此操作:

fileTexts = []
for document in allFiles:
    fileTexts.append(getFileText(basePath + document))

答案 1 :(得分:0)

或使用列表理解

file_texts = [getFileText(basePath + document) for document in allFiles]

https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions