我有一个可以使用终端运行的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(几分钟后)。我应该使用其他一些操作命令吗?
答案 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.system和https://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
类型。