shell命令

时间:2018-02-06 09:33:07

标签: python bash popen

我有以下与Bash交互的Python函数。

如何使用callPopen来回显文件1和文件2的值?那么类似于echo $file1 file2但是从Python执行到Bash终端的东西?我的脚本目前比较两个文件的内容,但我想确保正在比较正确的文件。

def compareFiles(file1, file2)  
     result = Popen("diff " + file1 + " " + file2 + " | wc -l", shell=True, stdout=PIPE)
     if int(result) > 0:
         raise Exception("Error found")
     else:
         return 0

所以我知道我必须做call("echo file1 file2", shell=True, stdout=PIPE)这样的事情,但它不起作用。什么是正确的格式?

2 个答案:

答案 0 :(得分:1)

你有文件路径作为函数的参数:file1file2

在Python中打开并阅读它们。如果你没有必要,我们没有理由支持。

with open(file1, "rb") as f:
    file1_data = f.read()

with open(file2, "rb") as f:
    file2_data = f.read()

print(file1_data)
print(file2_data)

答案 1 :(得分:1)

如果您只想显示文件名的值,请使用:

print(file1 + " " + file2)