如何在bash命令中传递变量?

我正在尝试使用反词将多个.doc文件转换为.docx格式。如何编写这样的命令:

for file in os.listdir(directory):
    subprocess.run("antiword file > file+'.docx'")

它显示此错误:

[Errno 2] No such file or directory: "antiword file > file+'.docx'": "antiword file > file+'.docx'"

除了反词之外,没有其他方法可以正常读取对我有用的.doc文件。

评论
  • Gerber
    Gerber 回复

    子进程不运行bash。因此,运行bash并传递带有记住正确引号的参数的参数。

    subprocess.run(["bash", "-c", "antiword \"$1\" > \"$1\".docx", "_", file])