所以我有一个相当复杂的申请。。。 简而言之,这是你应该知道的主要事情:
file_name = raw_input("Name your file:").lower()
os.popen(sudo tcpdump -c5 -vvv -w "file_name" host wiki or host wiki2)
但这似乎行不通。我能修好吗? 谢谢, 巴斯特Linux
编辑1: 好吧,这就是我现在所拥有的,但它不起作用,有什么关于如何修复的指示吗?
import subprocess, os, sys
filename = raw_input('File name:').lower
pipe = os.popen("sudo tcpdump -c5 -w", 'filename')
pipe = popen("sudo tcpdump -c5 -w", shell=True, stdout=PIPE).stdout
如果运行的是较新版本的Python,则使用subprocess模块。
有关os.popen的替换详细信息,请访问:
它说:在Unix上,os.popen2、os.popen3和os.popen4也接受一个序列作为要执行的命令,在这种情况下,参数将直接传递给程序,而无需shell干预。
你的问题是你没有传递一个字符串作为你的命令。对
popen()
的固定调用:不要使用“os.popen”,应该使用subprocess模块。
我假设这个(字符串):
是你的命令。
因为我们只需要调用tcpdump而不需要从它获得任何输出,所以我们使用subprocess.call
当然,它为什么不起作用取决于错误是什么,但这是你应该怎么做。如果你能用你的错误来更新答案,那么答案就很清楚了。
相关问题 更多 >
编程相关推荐