我试图在两个不同的文件中找到共同的行,并试图在一个新的文本文件中列出它们。我在下面写了这个,但是它没有找到commons,只写我在arg2中给出的任何文件。请帮我排除故障
#!/usr/bin/python
import sys
def find_common_lines(arg1, arg2, arg3):
fh1 = open(arg1, 'r+')
fh2 = open(arg2, 'r+')
with open(arg3, 'w+') as f:
for line in fh1 and fh2:
if line:
f.write(line)
fh1.close()
fh2.close()
number_of_arguments = len(sys.argv) - 1
if number_of_arguments < 3:
print("ERROR:\tThe script is called with less than 3 arguments, but it needs 3!")
print("Usage:\tfind_common_lines.py <file1> <file2> <output_filepath>")
else:
arg1 = sys.argv[1]
arg2 = sys.argv[2]
arg3 = sys.argv[3]
find_common_lines(arg1, arg2, arg3)
所以,基本上我想要这个脚本做的是:
文件A
AAB
BBC
DDE
GGC
文件B
123
AAB
DDE
345
GHY
GJK
文件C
AAB
DDE
谢谢
尝试使用字典:
您可以使用python的库
pandas
来实现:为每个
.txt
文件创建数据帧,如下所示:现在,
merge
两个数据帧(如内部连接)只找出两者之间的公共行然后,您可以将此输出写入如下文件:
这将是有效的,因为不需要循环,也不需要编写复杂的正则表达式。代码变得更干净、更简单
如果这有帮助,请告诉我
首先,在使用“and”运算符时需要给出2条逻辑语句,现在使用1条逻辑语句,然后在for循环中直接输入fh2。尝试将代码更改为以下内容:
至
相关问题 更多 >
编程相关推荐