2015-11-14 83 views
0

我有這個奇怪的格式化文本文件我想讀,我不知道如何告訴python,每行以分隔符開頭。在白色空間分割字符串

在文本文件中的一行看起來像:

 3.146 -1.339  .358 29.214 

該文件使用5個空格作爲分隔符。我怎樣才能將每行讀入一個包含4個項目的列表?

+0

'line.strip()劃分文本行。分裂()'? – jonrsharpe

回答

1

使用splitstrip相結合,去除多餘的空白:

my_file_data = "  3.146 -1.339  .358 29.214" 
data = my_file_data.strip().split('  ') 
# do stuff with your data 
print(data[0]) 
3

你可以閱讀每一行成一個列表,使用以下4項:

with open(filename, 'r') as f: 

    # this will read in each row as: 
    # 
    # ['3.146', '-1.339', '.358', '29.214'] 
    # 
    # so `lines` will contain 
    # 
    # [['3.146', '-1.339', '.358', '29.214'], ...] 
    lines = map(str.split, f.readlines()) 

    # or alternatively, as @jez mentioned, it may be more readable to use 
    lines = [ line.split() for line in lines ] 

    # you'll then likely want to convert them to floats 
    # 
    # this will give you: 
    # 
    # [[3.146, -1.339, 0.358, 29.214], ...] 
    data = [ map(float, split_line) for split_line in lines ] 
+0

'readlines()'將返回一個列表。你不能「分割()」一個列表。您需要分割列表中的每一行。 – jez

+0

啊,很好。編輯。 –

+0

爲了可讀性,'line = [line.strip()。split()for line]在f]' – jez

0

這是你的分隔符:

delimiter=' '

然後你只需使用的分隔符

lineoftext.split(delimiter)