2014-03-27 17 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")]))]