Я предпочитаю использовать модуль glob
для выполнения таких задач. Поместите это в файл doc2docx.py
. Чтобы сделать его исполняемым, установите chmod +x
. И, возможно, поместите этот файл в свой $PATH
, чтобы он был доступен «везде».
#!/usr/bin/env python
import glob
import subprocess
for doc in glob.iglob("*.doc"):
subprocess.call(['soffice', '--headless', '--convert-to', 'docx', doc])
Хотя в идеале вы бы оставить расширение до самой оболочки и вызвать doc2docx.py
с файлами в качестве аргументов, как doc2docx.py *.doc
:
#!/usr/bin/env python
import subprocess
import sys
if len(sys.argv) < 2:
sys.stderr.write("SYNOPSIS: %s file1 [file2] ...\n"%sys.argv[0])
for doc in sys.argv[1:]:
subprocess.call(['soffice', '--headless', '--convert-to', 'docx', doc])
По просьбе @pyd, для вывода на цель каталог myoutputdir
использование:
#!/usr/bin/env python
import subprocess
import sys
if len(sys.argv) < 2:
sys.stderr.write("SYNOPSIS: %s file1 [file2] ...\n"%sys.argv[0])
for doc in sys.argv[1:]:
subprocess.call(['soffice', '--headless', '--convert-to', 'docx', '--outdir', 'myoutputdir', doc])
Оно не помогло ... дал мне ту же ошибку –