2014-04-07 104 views
0

從文件特別名單我有一個這樣的文件:產生蟒蛇

one:two:three 
four:five:six 
seven:height:nine 

等等...... 我想是正確解析它來獲取這種變量:

myVar = [("one", "two", "three"), ("four", "five", "six"), ("seven", "height", "nine")] 

當然,文件並沒有停在九點,之後有更多的線條。

我該怎麼用Python做到這一點?

謝謝!

回答

2

使用列表compehension:

with open('filename') as f: 
    myVar = [line.rstrip().split(':') for line in f] 

如果你需要一個列表,元組,然後傳遞到line.rstrip().split(':')tuple()

tuple(line.rstrip().split(':')) 
+0

非常感謝! 我要去waaay爲此複雜。 Python是如此偉大的語言。 –

2
with open('your file') as f: 
    myVar = [ tuple(a.split(':')) for a in f.read().split() ] 

print myVar 

輸出

[('one', 'two', 'three'), ('four', 'five', 'six'), ('seven', 'height', 'nine')]

+1

'file.readlines()'實際上將返回''一:二:三\ n 「'。 –

+0

@Aशwiniचhaudhary固定 – vaultah

2

您正在處理的數據看起來像分隔符分隔。我會建議使用csv.reader,這樣

import csv 
with open("Input.txt") as in_file: 
    reader = csv.reader(in_file, delimiter=':') 
    print [row for row in reader] 

可以將此轉換爲一個元組,這樣

print [tuple(row) for row in reader]