首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何重定向Win输出“活动”而不等待

如何重定向Win输出“活动”而不等待
EN

Stack Overflow用户
提问于 2017-12-25 22:51:36
回答 1查看 218关注 0票数 0

1)我需要在Python 7上运行一个外部程序,并将“活动”输出(不需要STDERR)重定向到文件调用log.txt。最好是附加,而不是覆盖。

2)这个外部程序将不时地将事件记录到我的输出文件log.txt中。3)我不希望我的python脚本在#1和#2上面等待。换句话说,我想让我的python脚本做#1和#2,然后返回,这样我就可以做其他事情了。

我试着跟在后面,运气不太好,( 1) \x{##**$$}#** ~‘2 '>>’3)

使用open(fileName,'w')作为fout: subprocess.call(命令,stdout=fout)

上述所有尝试都导致我的代码等待。我需要以某种方式发出一个子进程,而不是等待返回。有人能帮我解决这个问题吗?

下面的代码记录第一个子进程调用。但在此之后,它不会记录sendCmd()中的任何内容。如果我手动运行pdSniffer.py,它将登录到同一个Event.log文件。

代码语言:javascript
运行
复制
def startListner():
  fileName =getScriptPath() +r'\Script\allscripts\eventLog.txt'
  path =getScriptPath() +r'\Script\allscripts\pdSniffer.py 198.168.1.101 '
  winCMD='C:\\Python27\\python ' +path
  fout =open(fileName,'w')
  subprocess.Popen(winCMD, stdout=fout)
  Delay(2000)
  sendCmd()
  Delay(360000)

def sendCmd():
  path =getScriptPath() +r'\Script\allscripts\sendCreateEvent.py 192.168.1.100 1041 1143 0 4 0'  
  p =subprocess.Popen(['C:\\Python27\\python', path], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-25 23:01:36

您必须使用subprocess.Popen接口,除非手动调用wait,否则它不会阻塞

代码语言:javascript
运行
复制
proc = subprocess.Popen(command, stdout=fout)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47972536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档