Python将文本文件作为列表导入I

2024-03-29 08:43:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个要作为列表导入的文本文件,用于此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

我该怎么办?


Tags: textinnumber列表foropenitemusers
2条回答

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(),您可以使用+=来递增number

此外,您还可以进一步简化代码,并对嵌套循环使用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)]

希望能有所帮助。

列表理解对您有帮助:

print [y[1]+str(y[0]) for y in list(enumerate([x.strip() for x in open("/Users/abc/test.txt","r")]))]

相关问题 更多 >