如何解决使用 os.system() 运行命令后,Python 脚本停止运行
我的 python 脚本在运行 os.system()
后冻结。代码如下所示;
command_line = 'java -jar "backup.jar" test'
os.system(command_line)
# python script freezes at this point. Cannot move on to execute code below
不知为何,今天突然遇到这个问题。过去没有问题。没有错误信息。没有提示什么问题。我对最新的 Windows 10 软件包进行了更新。不知道是不是这个原因。
如果此问题无法解决,是否有替代 os.system() 的替代方法来运行命令以使 python 脚本不会冻结?
我在 anaconda 上使用 python 3.8。
解决方法
更改如下命令以查看命令是否有任何问题。
command_line = 'java -jar "backup.jar" test > /tmp/test.log'
您可以验证 /tmp/test.log 以查看日志中的 java 命令是否有任何问题。 os.system 等待响应。使用具有返回状态(0 - 如果成功)的 subprocess.call() 方法可以实现相同的目的。要在后台运行命令,您可以使用 subprocess.Popen() 方法。
,我会回答我自己的问题。它基于 rajendrau 的答案,我已将其标记为正确答案。它对我有用。
我所做的是使用subprocess.Popen()
。脚本不再“冻结”。
subprocess.Popen(['java','-jar',"backup.jar",'test'])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。