我有两个要用于创建新文件的文本文件。
一个文件的数据如下:mf-bom.xyrs
J25 5193.94 -3669.45 90.0 1 1 0.0 0.0 DF40C-100DS-0.4V 1 DF40C-100DS-0.4V
J24 4778.15 -3592.17 270.0 1 1 0.0 0.0 DF40C-100DS-0.4V 1 DF40C-100DS-0.4V
TP47 5232.28 -3688.98 0.0 2 1 0.0 0.0 DO NOT POPULATE 1 DNP
TP19 4905.98 -3583.0 0.0 2 1 0.0 0.0 DO NOT POPULATE 1 DNP
TP15 5206.3 -3796.85 0.0 2 1 0.0 0.0 DO NOT POPULATE 1 DNP
,另一个具有如下数据:single-bom.bom
114.119, 114.119, "R12"
114.633, 114.633, "R25"
117.028, 117.028, "C20"
135.495219, 135.495219, "TP34"
137.56, 137.56, "J24"
147.56, 137.56, "J25"
我想查看single-bom.bom
中的最后一项并在那里获取值...在这种情况下,它是R12。然后,我想查看mf-bom.xyrs
每行中的第一项,看看是否有匹配项(“ R12”)。如果有,请将整行从mf-bom.xyrs
复制并追加到另一个文件。
我尝试将它们都带列表(例如)放入python
with open('mf-bom.xyrs') as f:
mf_bom = f.read().split("\t")
但这形成了一个长长的一维列表,并且没有保留行(我的意思是换行符)。
我尝试过的所有其他操作都太愚蠢了,无法在此处发布...。我觉得我在敲打头,却错过了正确使用python的难易之处。
答案 0 :(得分:0)
这不是一个完整的答案,但我想解决您尝试读取文件的问题。
执行此操作时:
with open('mf-bom.xyrs') as f:
mf_bom = f.read().split("\t")
您正在阅读整个文件,然后在选项卡上将其拆分...因此,您当然会得到一个很大的单清单。您想独立分割文件的每一行,所以像这样:
with open('mf-bom.xyrs') as f:
mf_bom = []
for line in f:
mf_bom.append(line.split('\t'))
此代码后,mf_bom
将是列表列表,每行一个,例如:
[
['J25', '5193.94', '-3669.45', '90.0', '1', '1', '0.0', '0.0', 'DF40C-100DS-0.4V', '1', 'DF40C-100DS-0.4V'],
...
]
您可以这样写得更简洁:
with open('mf-bom.xyrs') as f:
mf_bom = [line.split('\t') for line in f]
您还可以使用csv
模块来读取此文件。