繁体   English   中英

如何告诉 Python 等到来自 os.system() 的 Windows 命令完成?

[英]How to tell Python to wait until a Windows command from os.system() finishes?

我想在 cmd 中执行一个命令,在cmd模式下运行-nodesktop (所以没有 gui)。 我将运行的 Matlab 程序将创建一个.txt文件,稍后将在同一脚本pandas中解析该文件。 但是在我的 Windows 10 上(在 Linux 上有效), pandas不会等待命令完成并尝试解析导致此错误的空文件:

pandas.errors.EmptyDataError: No columns to parse from file

这是我稍后在 Matlab 中运行的命令(与一对(正确的)function 调用):

matlab -nodesktop -r

然后像这样运行整个命令字符串:

os.system(COMMAND_START)

几行之后,我尝试使用pandas解析文件,但它不会等待os.system()完成,所以在Matlab命令启动之后(它需要很长时间才能完成)想要解析一个空文件。 如何让我的脚本等待os.system()完成?

df = pd.read_csv("stabs.txt", header=None)
STABS_KG = df[0].to_list()
STABS_1_KG = df[1].to_list()

如果您不想使 subprocess 模块复杂化并且您估计完成所需的时间,您可以在调用后简单地添加一个 sleep(seconds) :

os.system(COMMAND_START)
sleep(2) -> wait 2 seconds

您还可以使用子流程模块:

import subprocess
process = subprocess.Popen(['COMMAND_START'])
exitCode=process.wait()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM