Skip to main content
 首页 » 编程设计

python之在 Python 中查找和组合数据

2025年05月04日11yjmyzz

我有3个文本文件

  1. 多行 value1<tab>value2 (也许 600)
  2. 更多行 value2<tab>value3 (也许 1000)
  3. 更多行 value2<tab>value4 (也许 2000)

并非所有行都匹配,有些行会缺少一个或多个值。我想获取文件 1,读取它并在文件 2 和 3 中查找相应的值,然后将输出写为 - 例如

value1<tab>value2<tab>value3<tab>value4 
value1<tab>value2<tab>blank <tab>value4 

即通过打印一些文本来指示该值丢失

在 awk 中,我可以通过预先将文件读入数组来开始,然后结束并逐步执行它们。但我想使用 Python (3) 来实现可移植性。我使用 MS Access 和链接表在 PC 上执行此操作,但每次使用此方法都会有时间损失。

所有在字典或列表中理解这一点的努力都让我感到困惑。我现在似乎拥有每一本 Python 书籍!

非常感谢任何可以提供建议的人。 (有兴趣的话,就是arp、mac和vendor codes)

请您参考如下方法:

未经测试:

f1 = open("file1.txt") 
f2 = open("file2.txt") 
f3 = open("file3.txt") 
 
v1 = [line.split() for line in f1] 
# dict comprehensions following, these need Python 3 
v2 = {vals[0]:vals[1] for vals in line.split() for line in f2} 
v3 = {vals[0]:vals[1] for vals in line.split() for line in f3} 
 
for v in v1: 
  print( v[0] + "\t" + v[1] + "\t" + v2.get(v[1],"blank ") + "\t" + v3.get(v[1],"blank ") )