python - 用python比较两个文本文件之间的值
问题描述
我有两个文本文件,我想从中创建一个新文件。
一个文件的数据如下所示: 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 是多么容易的一点。
解决方案
这不是一个完整的答案,但我想解决您尝试读取文件的问题。
当你这样做时:
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
模块来读取此文件。
推荐阅读
- r - if 条件 R 内的多个图
- apache-spark - 在 Cassandra 中处理历史时间序列数据的策略
- javascript - 如何通过 JS 获取 nextElementSibling 类型?
- r - 更改特定坐标的颜色
- regex - 正则表达式查找替换以添加函数参数
- ios - OTOOL 替代 Linux
- python - 为什么我的 apache kafka 消费者随机忽略排队的消息?
- arrays - 用于反应组件的 Typescript 泛型采用记录数组和键数组
- opencv - OpenCV:stereoRectify 导致空图像
- git - Git - 在在线存储库中有未跟踪的文件