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

标签 python string file

我有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 ") )

关于python - 在 Python 中查找和组合数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1008587/

相关文章:

file - Github,文件太大已删除。

java - 我如何引用 Java 中的目录?

python - 从一组相似图像中丢弃图像

python - 理解列表理解与传统循环和构建

python - 如何在 python lxml 包中的 XPATH 表达式中设置数组索引

java - 字符串文字和永久代内存区域

string - 我无法正确逃避什么?

Python tkinter 弹跳球 - 能量趋于无穷大

python - 什么是 Python 字节串?

c# - 检查列表中的文件是否存在