如何修复我的函数来存储数据?

时间:2017-07-11 19:32:39

标签: python mysql

我的函数运行URLcrazy,我发现它没有将输出存储到任何变量中,我无法弄明白。显示的tmp变量不会将输出存储到该列表中。我如何解决这个问题来存储执行的数据。

def run_urlcrazy():
   tmp = []
    for domain in grab_domains():
      np = os.system("urlcrazy " + domain)
      tmp.append(np)
   return tmp

我试图让URLcrazy的输出针对循环中的所有域运行,并且能够切断ouptut。我认为URLcrazy输出数据的方式我无法格式化另一个函数中的数据。我需要能够将信息存储在数据库中。

1 个答案:

答案 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])