2016-02-10 51 views
0

我正在嘗試在一個TEXT文件中讀取文件並試圖從多行創建列表。從一個文件的格式化多行輸出創建一個列表

with open(filename1, 'r') as file1: 
     for line in file1: 
      strings2 = [] 
      strings1 = line.rsplit(': ', 1)[1] 
      print ("Text 1 output is: {}".format(strings1)) 
      strings2 = strings1.split(',') 
    print ("output-1 is:{}".format(strings3)) 

FILE.TXT:

12345: apple is fruit 
34354: grapes is also fruit 

預期輸出:

[apple is fruit, grapes is also fruit] 

實際輸出:

[grapes is also fruit] 
+0

輸入文本文件中是否存在換行符? – Kris

+0

是的,只是更新了我的示例文件,如上 – user5911015

回答

0
with open(filename1, 'r') as file1: 
    lines = [' '.join(line.split(" ")[1:]).rstrip() for line in file1] 

Assumi如果你能保證文件格式,那很好。這假設在第一個空間之前的任何東西都未被使用。如果你想用冒號(即1234:testing 123沒有空格),爲了將它,那麼你可以這樣做:

with open(filename1, 'r') as file1: 
    lines = [':'.join(line.split(":")[1:]).strip() for line in file1] 
0

這應該幫助你

>>> with open(filename) as f: 
... lst = [line.rstrip('\n').split(': ')[1] for line in f] 
... 
>>> lst 
['apple is fruit', 'grapes is also fruit'] 
+0

謝謝!這是按預期工作的! – user5911015

+0

如果我的回答比其他人更好地解決您的問題,請將其標記爲已接受。謝謝 – Pynchia

0

也許移動strings2初始化之外的for循環和使用追加?例如:

with open(filename1, 'r') as file1: 
    strings2 = [] 
    for line in file1: 
     strings1 = line.rsplit(': ', 1)[1].strip() 
     print "Text 1 output is: {}".format(strings1) 
     strings2.append(strings1) 

print strings2 
+0

謝謝,這給了我輸出\ n添加到每個元素 – user5911015

+0

好吧,你可以使用'.strip()'擺脫那..看到更新回答 – Kris

+1

完美!非常感謝你! – user5911015