如何从 txt 文件中的拆分行制作嵌套列表?
How to make nested list from splited line in txt file?
我想通过 space 字符“ ”将我的 txt 文件中的每一行分成 3 部分,并将这 3 部分变成每一行的列表,并将所有这些列表变成一个更大的列表
我的 txt 文件:
1998/04/20 17:38:51.604 16.863014
1998/04/20 17:38:52.204 1.947639
1998/04/20 17:38:54.404 27.278648
1998/04/20 17:39:02.605 0.325151
1998/04/20 17:39:04.705 7.002871
我的代码:
dataList = []
metaData = ['', '', '']
with open('data.txt', 'r') as myTxt:
for line in myTxt:
metaData[0] = line.split(' ')[0]
metaData[1] = line.split(' ')[1]
metaData[2] = line.split(' ')[2]
dataList.append(metaData)
print(dataList)
我希望输出是这样的:
[[1998/04/20, 17:38:51.604, 16.863014],
[1998/04/20, 17:38:52.204, 1.947639],
[1998/04/20, 17:38:54.404, 27.278648],
[1998/04/20, 17:39:02.605, 0.325151],
[1998/04/20, 17:39:04.705, 7.002871]]
但我得到的是:
[[1998/04/20, 17:39:04.705, 7.002871],
[1998/04/20, 17:39:04.705, 7.002871],
[1998/04/20, 17:39:04.705, 7.002871],
[1998/04/20, 17:39:04.705, 7.002871],
[1998/04/20, 17:39:04.705, 7.002871]]
有人知道如何解决这个问题吗?谢谢
试试这个:
with open('data.txt', 'r') as myTxt:
dataList = [i.strip().split() for i in myTxt.readlines()]
输出 :
[['1998/04/20', '17:38:51.604', '16.863014'],
['1998/04/20', '17:38:52.204', '1.947639'],
['1998/04/20', '17:38:54.404', '27.278648'],
['1998/04/20', '17:39:02.605', '0.325151'],
['1998/04/20', '17:39:04.705', '7.002871']]
根据评论部分的要求,要将列表转换为另一种格式,请尝试以下操作:
dataList = [[' '.join([i, j]), k] for i,j,k in dataList]
它应该输出这个:
[['1998/04/20 17:38:51.604', '16.863014'],
['1998/04/20 17:38:52.204', '1.947639'],
['1998/04/20 17:38:54.404', '27.278648'],
['1998/04/20 17:39:02.605', '0.325151'],
['1998/04/20 17:39:04.705', '7.002871']]
如果你想在一行中得到上面的结果,你可以这样做:
with open('test2.txt', 'r') as myTxt:
dataList = [[' '.join(i.strip().split()[:-1]),i.strip().split()[-1]] for i in in myTxt.readlines()]
我想通过 space 字符“ ”将我的 txt 文件中的每一行分成 3 部分,并将这 3 部分变成每一行的列表,并将所有这些列表变成一个更大的列表
我的 txt 文件:
1998/04/20 17:38:51.604 16.863014
1998/04/20 17:38:52.204 1.947639
1998/04/20 17:38:54.404 27.278648
1998/04/20 17:39:02.605 0.325151
1998/04/20 17:39:04.705 7.002871
我的代码:
dataList = []
metaData = ['', '', '']
with open('data.txt', 'r') as myTxt:
for line in myTxt:
metaData[0] = line.split(' ')[0]
metaData[1] = line.split(' ')[1]
metaData[2] = line.split(' ')[2]
dataList.append(metaData)
print(dataList)
我希望输出是这样的:
[[1998/04/20, 17:38:51.604, 16.863014],
[1998/04/20, 17:38:52.204, 1.947639],
[1998/04/20, 17:38:54.404, 27.278648],
[1998/04/20, 17:39:02.605, 0.325151],
[1998/04/20, 17:39:04.705, 7.002871]]
但我得到的是:
[[1998/04/20, 17:39:04.705, 7.002871],
[1998/04/20, 17:39:04.705, 7.002871],
[1998/04/20, 17:39:04.705, 7.002871],
[1998/04/20, 17:39:04.705, 7.002871],
[1998/04/20, 17:39:04.705, 7.002871]]
有人知道如何解决这个问题吗?谢谢
试试这个:
with open('data.txt', 'r') as myTxt:
dataList = [i.strip().split() for i in myTxt.readlines()]
输出 :
[['1998/04/20', '17:38:51.604', '16.863014'],
['1998/04/20', '17:38:52.204', '1.947639'],
['1998/04/20', '17:38:54.404', '27.278648'],
['1998/04/20', '17:39:02.605', '0.325151'],
['1998/04/20', '17:39:04.705', '7.002871']]
根据评论部分的要求,要将列表转换为另一种格式,请尝试以下操作:
dataList = [[' '.join([i, j]), k] for i,j,k in dataList]
它应该输出这个:
[['1998/04/20 17:38:51.604', '16.863014'],
['1998/04/20 17:38:52.204', '1.947639'],
['1998/04/20 17:38:54.404', '27.278648'],
['1998/04/20 17:39:02.605', '0.325151'],
['1998/04/20 17:39:04.705', '7.002871']]
如果你想在一行中得到上面的结果,你可以这样做:
with open('test2.txt', 'r') as myTxt:
dataList = [[' '.join(i.strip().split()[:-1]),i.strip().split()[-1]] for i in in myTxt.readlines()]