Python 导入文本文件作为列表进行迭代

标签 python list import text-files

我有一个文本文件,我想将其作为列表导入以用于此 for-while 循环:

text_file = open("/Users/abc/test.txt", "r")
list1 = text_file.readlines
list2=[]
    for item in list1:
        number=0
        while number < 5:
            list2.append(str(item)+str(number))
            number = number + 1
    print list2

但是当我运行它时,它输出:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'builtin_function_or_method' object is not iterable

我该怎么办?

最佳答案

readlines()是一个方法,调用它:

list1 = text_file.readlines()

此外,不是将整个文件加载到 python 列表中,而是逐行遍历文件对象。和 use with context manager :

with open("/Users/abc/test.txt", "r") as f:
    list2 = []
    for item in f:
        number = 0
        while number < 5:
            list2.append(item + str(number))
            number += 1
    print list2

另请注意,您不需要在 item 上调用 str(),您可以使用 += 来增加 >编号

此外,您还可以进一步简化代码并使用 list comprehension嵌套循环:

with open("/Users/abc/test.txt", "r") as f:
    print [item.strip() + str(number) 
           for item in f 
           for number in xrange(5)]

希望对您有所帮助。

关于Python 导入文本文件作为列表进行迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22677853/

相关文章:

python - python 2.4 的内置函数 bin() 的向后移植

java - 返回列表的迭代器

python - 导入错误 : No module named statsmodels

python - 如何在不导入的情况下模仿 Python 模块?

python - 防止Python脚本中的写入中断

python - 整数变量不在python中更新

python - 将列表字符串转换为列表列表的列表

python - 通过 Python 列表过滤以查找常见元素

java - 为什么我无法使用 List 引用类型对象访问 LinkedList 方法

python - Keras:导入错误:没有名为 data_utils 的模块