获取Python系统调用作为字符串结果

获取Python系统调用作为字符串结果,python,Python,我想使用os.system(“md5sum myFile”)并从os.system返回结果,而不是仅仅在子shell中运行它 简而言之,我想这样做: resultMD5 = os.system("md5sum myFile") 并且在resultMD5中只包含md5sum,不回显。您可能应该使用子流程模块来替代os.system。比使用os.system或os.popen import subprocess resultMD5 = subprocess.Popen(["md5sum","myF

我想使用os.system(“md5sum myFile”)并从os.system返回结果,而不是仅仅在子shell中运行它

简而言之,我想这样做:

resultMD5 = os.system("md5sum myFile")

并且在resultMD5中只包含md5sum,不回显。

您可能应该使用子流程模块来替代os.system。

比使用
os.system
os.popen

import subprocess
resultMD5 = subprocess.Popen(["md5sum","myFile"],stdout=subprocess.PIPE).communicate()[0]
或者自己用模块计算md5sum


@菲利普·埃克伯格:道格拉斯·利德说的:-)不需要通过shell来运行md5sum。不要对hashlib使用shell=True+1,这是最好的方法,不依赖于外部可执行文件。
import hashlib
resultMD5 = hashlib.md5(open("myFile").read()).hexdigest()
import subprocess

p = subprocess.Popen("md5sum gmail.csv", shell=True, stdout=subprocess.PIPE)
resultMD5, filename = p.communicate()[0].split()
print resultMD5