根据 Python 文档,subprocess.call
应该阻塞并等待子进程完成。在这段代码中,我试图通过调用命令行将几个xls
文件转换为新格式。Libreoffice
我假设对子进程调用的调用是阻塞的,但似乎我需要在每次调用后添加一个人为的延迟,否则我会错过目录中的几个文件out
。
我究竟做错了什么?为什么我需要延迟?
from subprocess import call
for i in range(0,len(sorted_files)):
args = ['libreoffice', '-headless', '-convert-to',
'xls', "%s/%s.xls" %(sorted_files[i]['filename'],sorted_files[i]['filename']), '-outdir', 'out']
call(args)
var = raw_input("Enter something: ") # if comment this line I dont get all the files in out directory
编辑通过下面的评论可能很难找到答案。我用于unoconv
文档转换,它是阻塞的,并且易于从脚本中使用。