2024-06-01 14:23:22 发布
网友
我使用调用shell脚本执行操作系统()在python中。我的shell脚本有一些echo语句,我想在文件中重定向这些语句。在
以下是我正在尝试的:
cmd = "/opt/rpm/rpm_upgrade.sh >& /opt/rpm/upgrader.log" cmdline = ["/bin/sh", cmd] os.execvp(cmdline[0], cmdline)
以下是我得到的错误:
有人能帮忙吗?在
之所以会发生这种情况,是因为您将整个字符串当作要执行的程序名来传递:
"/opt/rpm/rpm_upgrade.sh >& /opt/rpm/upgrader.log"
解决方法很简单:
现在,sh将接收三个参数,而不是一个。
sh
或者您可以切换到功能更全面的subprocess模块,该模块允许您重定向Python中的输出:
subprocess
import subprocess with open("/opt/rpm/upgrader.log", "wb") as outfile: subprocess.check_call(["/opt/rpm/rpm_upgrade.sh"], shell=True, stdout=outfile, stderr=subprocess.STDOUT)
之所以会发生这种情况,是因为您将整个字符串当作要执行的程序名来传递:
解决方法很简单:
^{pr2}$现在,
sh
将接收三个参数,而不是一个。或者您可以切换到功能更全面的
subprocess
模块,该模块允许您重定向Python中的输出:相关问题 更多 >
编程相关推荐