我有一个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']
我知道这是一个菜鸟尝试,我该如何解决?
答案 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。