2013-11-09 20 views
0

所以我想創建包含內部的一個文件文件行到一個列表

list = open(sys.argv[1]).readlines() #Input File 
i=0 
print list[i] 
for x in list[i]: 
    print x #the problem is on this line 
    i+=1 

「打印X」的每一行的所有符號的循環版畫,逐一列表,在一個新的線。 認爲它應該將整行打印爲單個列表項目。 爲什麼會發生這種情況?

回答

1

在for循環線拆下[i]

# Don't name a variable 'list' -- it overshadows the built-in 
lst = open(sys.argv[1]).readlines() 
i=0 
print lst[i] 
for x in lst: 
    print x 

您當前的代碼是遍歷文件的第一線,並不是所有的線路。請記住,i=0list是文件中行的列表。因此,list[i]list中的第一項,即文件中的第一行。


此外,您當前的代碼不會關閉該文件。因此,這將是最好用在這裏with

with open(sys.argv[1]) as myfile: 
    lst = myfile.readlines() 
    i=0 
    print lst[i] 
    for x in lst: 
     print x 

我會強烈建議您使用每次你打開一個文件,因爲它自動關閉它們爲您的時間with

相關問題