为什么?操作系统无法重定向到文件?如何实现这一点?

2024-10-06 16:13:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将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()

Tags: cmddbosdefstdoutsyssystemstart
1条回答
网友
1楼 · 发布于 2024-10-06 16:13:29

为什么不使用subprocess?这是迄今为止最简单的解决办法。有关更完整的详细信息,请参见https://stackoverflow.com/a/3982683/2314532,但是使用subprocess.call()重定向输出的要点可以归结为:

f = open("outputFile","wb")
subprocess.call(argsArray,stdout=f)

所以你发布的代码会变成:

^{pr2}$

{&cd3>无需保存。只要将参数stdout提供给subprocess.call,问题就解决了。容易,简单,Python。在

相关问题 更多 >