尝试将元素从文本文件导入到列表中



我有一个文本文件,其中包含公交公司预订系统的客户信息。文件的布局如下:

id, name, customer discount, total money spent

。文件的一部分是:

C1, James, 0, 100
C2, Lily, 0, 30

我想在Python中将这些信息导入到一个列表中,但我只需要id和名称。我尝试了几种不同的方法来导入信息,但我只能将整个文件导入到一个列表中,即使这样,它也总是像这样输出:

[['C1,' 'James,' '0', '100'], ['C2', 'Lily', '0', '30']]

我甚至不知道如何开始分离项目,以便我可以在列表中只有id和name。

由于文本文件包含逗号分隔的值,因此csv模块可能最有用。

import csv
with open ('data.txt', 'r') as fh:
header = [h.strip() for h in next(fh).split(',')] # remove spaces and assign the header to dictionary keys
reader = csv.DictReader(fh, fieldnames=header) # read the row contents assigning names to the fields
for row in reader:
print(row['id'], row['name'])

C1  James
C2  Lily

csv模块作为字典读取文件的有用部分为每行的字段分配列名,使您可以轻松地索引您想要选择的列名,例如row['id']row['name']

也,因为你提到你想"只有list"id和名称;,首先创建一个空列表,然后将每个行项目列表,所以:

import csv
id_name = [] # list to store ids, names
with open ('data.txt', 'r') as fh:
header = [h.strip() for h in next(fh).split(',')]
reader = csv.DictReader(fh, fieldnames=header)
for row in reader:
# print(row['id'], row['name'])
id_name.append([row['id'], row['name']])
print(id_name) # print the resulting list

[['C1', ' James'], ['C2', ' Lily']]

相关内容

  • 没有找到相关文章

最新更新