我用Python运行一个命令的子进程,这个命令使用ClamScan扫描USB驱动器中的病毒,这个命令在终端中执行时运行得很好,但是当我在Python脚本中运行它时,它创建了一个临时输出文件,但是这个文件不包含预期的结果,其中,直接运行它可以得到预期的结果
cmd = "clamscan -r --infected --no-summary " + drivePath + " > tempout.txt"
clamScan = subprocess.check_output(cmd, shell = True)
查看clamScan的输出如下:
clamscan -r --infected --no-summary /media/root/USB
> tempout.txt
tempout.txt已创建,但随后为空。跑步 clamscan-r--已感染--无摘要/media/root/USB>;tempout.txt文件 通过终端创建一行文件,这是预期的结果。似乎通过subprocess函数运行该命令会导致变量drivePath后面的行返回,但我不确定原因是什么
我不确定使用“>;”重定向是否有效在python里面。可以使用subprocess.Popen()函数,该函数允许对输入/输出进行更多控制。stdout的输出可以重定向到一个文件,例如:
相关问题 更多 >
编程相关推荐