仅将数字附加到混合文件的列表中

时间:2016-02-03 15:23:35

标签: python-2.7

我有一个txt文件,如下所示:

    100.00   gasoline
    20.00    lunch
    12.50    cigarettes

我想只取数字(100.00,20.00,12.50)并将它们附加到列表中,我该怎么做?我尝试过:

    tot_us = []
    for float in us_file:
        tot_us.append(float)

当我打印列表时,我得到:

  ['100.00\tgasoline\n', '20.00\tlunch\n', '12.50\tcigarettes\n']

我在期待:

  ['100.00', '20.00', '12.50']

我知道这是一个菜鸟尝试,我该如何解决?

2 个答案:

答案 0 :(得分:0)

您需要使用.split()将每行分为两部分:

total_us = []

with open('somefile.txt') as f:
    for line in f:
        if line.strip():
            bits = line.split('\t')
            total_us.append(bits[0])

print(total_us)

或者,您可以使用csv模块:

import csv

with open('somefile.txt') as f:
    reader = csv.reader(f, delimiter='\t')
    total_us = [row[0] for row in reader]

print(total_us)

答案 1 :(得分:0)

您还可以识别选项卡的位置,然后使用切片:

tot_us = []
for line in us_file:
    tab_pos = line.index('\t')
    float = line[:tab_pos]
    tot_us.append(float)

有关切片的详细信息,请参阅this answer