我试图将stdout重定向到一个文件,其中print语句被重定向,但是操作系统o/p不是。在
From This我试过使用“>;”运算符,但不适合我。在
我不想使用子进程或popen
下面是示例代码。在
有人能帮忙吗?在
def ExecCMS_AGT_DB(cmd):
sys.stdout=open(cmd+'.txt','w')
print "\ncmd $: "+cmd+" start"
os.system(cmd+" start")
print "\ncmd $: "+cmd+" stop"
os.system(cmd+" stop")
sys.stdout.close()
def ExecCmd():
OldStdout=sys.stdout
ExecCMS_AGT_DB("srocms")
sys.stdout=OldStdout
#if __name__=="__main__":
ExecCmd()
为什么不使用
subprocess
?这是迄今为止最简单的解决办法。有关更完整的详细信息,请参见https://stackoverflow.com/a/3982683/2314532,但是使用subprocess.call()
重定向输出的要点可以归结为:所以你发布的代码会变成:
^{pr2}${&cd3>无需保存。只要将参数
stdout
提供给subprocess.call
,问题就解决了。容易,简单,Python。在相关问题 更多 >
编程相关推荐