我有一个文本文件 (.txt) 如下所示:
日期、日、节、1、2、3
1, 太阳, 1-1, 123, 345, 678
2, 星期一, 2-2, 234, 585, 282
3, 星期二, 2-2, 231, 232, 686
有了这些数据,我想做以下事情:
1)逐行读取文本文件作为列表中的单独元素
用逗号分割元素
删除列表中不需要的元素(’\n’)
对于这两个,我做了这些。
file = open('abc.txt', mode = 'r', encoding = 'utf-8-sig')
lines = file.readlines()
file.close()
my_dict = {}
my_list = []
for line in lines:
line = line.split(',')
line = [i.strip() for i in line]
- 将第一行(Date, Day, Sect, 1, 2, 3) 设置为键,将其他行设置为字典中的值。
my_dict['Date'] = line[0]
my_dict['Day'] = line[1]
my_dict['Sect'] = line[2]
my_dict['1'] = line[3]
my_dict['2'] = line[4]
my_dict['3'] = line[5]
上面的代码有两个问题:1)也将第一行设置为字典。 2)如果我将它添加到列表中,如下所示,它只保留最后一行作为列表中的所有元素。
- 创建一个包含字典作为元素的列表。
my_list.append(my_dict)
4)子集我想要的元素。
我无法从这里编写任何代码。但是我想做的是满足条件的子集元素:例如,选择字典中Sect为2-2的元素。那么想要的结果可能如下:
>> [{'Date': '2', 'Day': 'Mon', 'Sect': '2-2', '1': '234', '2': '585', '3': '282'}, {'Date': '3', 'Day': 'Tue', 'Sect': '2-2', '1': '231', '2':'232', '3':'686'}]
谢谢,
原文由 supremed14 发布,翻译遵循 CC BY-SA 4.0 许可协议
@supremed14 ,您也可以尝试使用下面的代码在读取文件后准备字典列表。
数据.txt
源代码:
输出: