![](/img/trans.png)
[英]Python's os.system within a for loop: how to wait for a command to finish before re-starting the loop?
[英]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.