2013-04-24 34 views
-2

我試圖完成相當簡單的事情。我想從一個txt文件創建一個python列表,並且能夠打印列表中的每個項目,就像我手動構建它一樣。將數據讀入Python中的變量3.3

例如:

list1 = [ 
""" 
Test1 

Test2 

Test3 
""", 
""" 
Test4 

Test5 

Test6 
""",] 

print (list1[1]) 
Test4 

Test5 

Test6 

我掙扎使用txt文件時,要做到這一點。我想文本文件的內容是:

""" 
Test1 

Test2 

Test3 
""", 
""" 

Test4 

Test5 

Test6 
""", 

和閱讀到list1,然後可以從列表1打印在上面的例子。每篇閱讀文件的文章似乎都過於複雜,我無法得到我想要的結果並需要幫助。

如果有一種方法可以讓txt文件格式化爲不包含「」「」「」的格式,並且包含其他一些分隔字符串的方式,比如「」,最後以通過保持換行符相同的功能,我很想知道

+0

我不明白你爲什麼需要一個列表。你只是想打印一個純文本文件的內容,或者一個分段?你想要達到什麼目的? – Aya 2013-04-24 10:35:19

+1

嘗試'eval('['+ open(...)。read()+']') – User 2013-04-24 10:36:05

+0

確保你關閉了文件後,如果你像上面建議的@ User一樣。 – HennyH 2013-04-24 10:46:39

回答

1

使用正則表達式:

import re 
with open('test.txt') as f: 
    list1 = re.findall(re.compile(r'"""\n((?:[^"]|\n)+)\n"""'),f.read()) 

print (list1[1]) 

產生

>>> 

Test4 

Test5 

Test6 
>>> 
+0

非常感謝!我明天會測試。 – Simkill 2013-04-24 21:56:21

+0

當然,不用擔心交配。如果你想讓我解釋正則表達式就問。 – HennyH 2013-04-24 23:02:04

-1

其他響應(S)可以給你一個更可靠/安全的方式做到這一點,但這裏是你在找什麼:

with open('myfile.txt') as f: 
    contents = f.read() 
    list1 = eval('[' + contents + ']')