2014-03-27 18 views
0

我有一个文本文件,我想导入为在本作-while循环使用的列表:Python的导入文本文件列表重述

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 

我该怎么办?

+1

它应该是'text_file.readlines()''不text_file.readlines' – sshashank124

回答

4

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 

还要注意的是,你并不需要呼吁itemstr(),你可以使用+=递增的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)] 

希望有所帮助。

0

列表理解涉及到你的帮助:

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