等待终端命令在python中完成

时间:2017-12-03 01:29:21

标签: python command-line terminal

我有一个可以使用终端运行的python脚本。但是,我需要等到它完成(输出两个文本文件)才能继续。我实施了:

command=['python','segment.py','audio.wav','trans.txt','out1.txt','out2.txt']
cmd=subprocess.Popen(command).wait()

它确实生成了out1.txt和out2.txt,但它们都是空的。当我从终端运行命令时,我得到正确的out1.txt和out2.txt(几分钟后)。我应该使用其他一些操作命令吗?

2 个答案:

答案 0 :(得分:1)

使用沟通:

cmd = subprocess.Popen(command)
cmd.communicate()
# Code to be run after execution finished

答案 1 :(得分:0)

尝试使用os.system。这将等待命令完成,如果成功运行,则返回退出状态0。要获得其他退出状态的含义,请使用os.strerror(exit_status)

请参阅https://docs.python.org/3.5/library/os.html#os.systemhttps://docs.python.org/3.5/library/os.html#os.strerror以获取更多帮助。

示例:

os.system('python segment.py audio.wav trans.txt out1.txt out2.txt')
>>> 0

请注意,os.system的参数必须为str类型。