如何在Python3中解析文件中的行时省略不需要的字符
问题: 我得到了一个.dat文件,其中包含3列100个数据(id号、对象重量、对象值),这些数据由一些空格/制表符分隔(见下文)。为了我在马尔可夫模型类中的作业,我只需将所有这些数据重写到一个3x100数组中,以用于我的模拟。但是,如果列表不再存在,我将无法手动执行此步骤,因此我想学习如何正确读取.dat文件的每一行,以便将每个数据值放入一个(100x3)二维矩阵/列表中,称为“数据”。重申一下,这与家庭作业无关,我只想了解使用python 3高效输入如此大数据文件的最佳方法 .dat输入文件的前八行如下所示。发布的格式与复制到问题框中时的外观不同,但我不想为了格式而对其进行编辑,以防与问题相关如何在Python3中解析文件中的行时省略不需要的字符,python,python-3.x,Python,Python 3.x,问题: 我得到了一个.dat文件,其中包含3列100个数据(id号、对象重量、对象值),这些数据由一些空格/制表符分隔(见下文)。为了我在马尔可夫模型类中的作业,我只需将所有这些数据重写到一个3x100数组中,以用于我的模拟。但是,如果列表不再存在,我将无法手动执行此步骤,因此我想学习如何正确读取.dat文件的每一行,以便将每个数据值放入一个(100x3)二维矩阵/列表中,称为“数据”。重申一下,这与家庭作业无关,我只想了解使用python 3高效输入如此大数据文件的最佳方法 .dat输入文件的
%%id weight (metric tons) value (1000 USD)
1 45220 28312
2 38764 22635
3 24801 21689
4 4507 22864
5 57671 12037
6 64263 15571
7 59482 1618
在阅读了与python解析相关的其他答案之后,我认为我应该从一个类似于下面的结构开始
with open('Packing.dat') as f:
for line in f:
for i in range(len(line)):
#functionThatMovesDownLineAndDistributesData(char)
我想学习的是如何解析每个数据行,忽略数据之间的所有空格,并将这三种数据类型分布到一个2维数组中以供以后处理
非常感谢任何愿意提供帮助的人 试试下面的方法。我正在遍历文件,跳过第一行,然后解析出整数并将其保存到列表中。
将行拆分为多个元素,并考虑多个空格 e、 g
非常感谢你!但我不太明白发生了什么。items=line.split()是否将行拆分为每个单独的字符?将单个值附加到数据时,类别之间的区别在哪里出现?阅读这段代码,我会认为输出应该是[[14522028312],[23876422635],…]。
line = '1 45220 28312'
print(line.split())
#['1', '45220', '28312']
datas = []
with open('Packing.dat') as f:
#Ignore the first line with column description
next(f)
#Iterate through lines in the file
for line in f:
data = []
#Get all elements in each line in a list
items = line.split()
#Append these elements to a list
for item in items:
data.append(int(item))
#Append the elements list to a bigger list
datas.append(data)
print(datas)
#[[1, 45220, 28312], [2, 38764, 22635], [3, 24801, 21689], [4, 4507, 22864], [5, 57671, 12037], [6, 64263, 15571], [7, 59482, 1618]]