我有3个文本文件
- 多行
value1<tab>value2
(也许 600) - 更多行
value2<tab>value3
(也许 1000) - 更多行
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/