我一直在尝试使用python子流程执行两个cmd命令,但一直在优化代码并将outputfile作为输入传递到cmd中
amass enum -d example.com
subfinder -d example.com -o outputfile.txt (where -o flag writes output in txt file)
理想情况下,我希望将聚合输出写入文件,然后将subfinder输出附加到我在下面编写的代码的同一个文件中
import subprocess
def gathersubdomain(domainname):
subdomainoutputs = open('amassoutput.txt','a')
processlogs=open('processlogs.txt','a')
amassscmd=[
'amass','enum','-d',domainname
]
subfindercmd=[
'subfinder','-d',domainname,'-o',subdomainoutputs
]
process1 = subprocess.Popen(amassscmd,stdout=subdomainoutputs,stderr=processlogs)
process2 = subprocess.Popen(subfindercmd,stdout=subprocess.PIPE,stderr=processlogs)
output=process2.stdout.read
return process1.wait()
gathersubdomain('example.com');
在运行上述代码时,我得到以下错误
Traceback (most recent call last):
File "subdomainenumeration.py", line 22, in <module>
gathersubdomain('haufe.io');
File "subdomainenumeration.py", line 16, in gathersubdomain
process2 = subprocess.Popen(subfindercmd,stdout=subprocess.PIPE,stderr=processlogs)
File "/usr/lib/python2.7/subprocess.py", line 711, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child
raise child_exception
TypeError: execv() arg 2 must contain only strings
我做错了什么?我能做些比打电话更好的事吗。我注意到这比我预期的要花更长的时间
目前没有回答
相关问题 更多 >
编程相关推荐