我的函数运行URLcrazy,我发现它没有将输出存储到任何变量中,我无法弄明白。显示的tmp变量不会将输出存储到该列表中。我如何解决这个问题来存储执行的数据。
def run_urlcrazy():
tmp = []
for domain in grab_domains():
np = os.system("urlcrazy " + domain)
tmp.append(np)
return tmp
我试图让URLcrazy的输出针对循环中的所有域运行,并且能够切断ouptut。我认为URLcrazy输出数据的方式我无法格式化另一个函数中的数据。我需要能够将信息存储在数据库中。
答案 0 :(得分:1)
os.system
不返回执行命令的输出,只返回退出代码(表示成功或错误)。
我相信你想要subprocess.Popen
:
import subprocess
def run_urlcrazy():
tmp = []
for domain in grab_domains():
proc = subprocess.Popen(["urlcrazy", domain], stdout=subprocess.PIPE)
(out, err) = proc.communicate()
tmp.append(out)
return tmp
或者,如果您只想要输出并且不想检查错误,则可以使用subprocess.check_output
:
out = subprocess.check_output(['urlcrazy', domain])