Python 2.7 为什么&燃气轮机&引用;不';t在python2中的subprocess.call中工作
似乎它在两个地方中断,一个是“>”,两个是“/tmp/测试” 我已经在谷歌上搜索过了,并且找到了其他方法来实现我所需要的Python 2.7 为什么&燃气轮机&引用;不';t在python2中的subprocess.call中工作,python-2.7,subprocess,Python 2.7,Subprocess,似乎它在两个地方中断,一个是“>”,两个是“/tmp/测试” 我已经在谷歌上搜索过了,并且找到了其他方法来实现我所需要的 with.open("/tmp/testing","w") as f: subprocess.call(["ls", "-ltr"], stdout=f) 想知道为什么第一个脚本不起作用 您试图用来重定向ls输出的是由shell实现的,而不是由ls本身实现的。当您使用subprocess.call时,它(默认情况下)不使用shell来运行程序。您可以通过将shell
with.open("/tmp/testing","w") as f:
subprocess.call(["ls", "-ltr"], stdout=f)
想知道为什么第一个脚本不起作用 您试图用来重定向
ls
输出的
是由shell实现的,而不是由ls
本身实现的。当您使用subprocess.call
时,它(默认情况下)不使用shell来运行程序。您可以通过将shell=True
作为参数传递来更改该值(您可能还需要更改命令的传递方式)
或者,您可以自己处理输出到文件的重定向,使用Python代码而不是shell。试着这样做:
with open('/tmp/testing', 'w') as out:
subprocess.call(['ls', '-ltr'], stdout=out)
试图用于重定向
ls
输出的
由shell实现,而不是由ls
本身实现。当您使用subprocess.call
时,它(默认情况下)不使用shell来运行程序。您可以通过将shell=True
作为参数传递来更改该值(您可能还需要更改命令的传递方式)
或者,您可以自己处理输出到文件的重定向,使用Python代码而不是shell。试着这样做:
with open('/tmp/testing', 'w') as out:
subprocess.call(['ls', '-ltr'], stdout=out)
因为“>”是shell命令(bash、sh或其他命令)/bin/ls本身对“>”或“|”一无所知,etcThanks@Eugene这是有道理的!因为“>”是shell命令(bash、sh或其他命令)/bin/ls本身对“>”或“|”一无所知,etcThanks@Eugene这是有道理的!