在Python中打印word文档

gee*_*ers 3 python

我这里有一个简单的批处理文件,它将从命令行打印word文档.

"C:\Program Files\Microsoft Office\Office12\winword.exe" "p:\docs\daily checks.doc" /mFilePrintDefault /mFileExit
Run Code Online (Sandbox Code Playgroud)

我试图将其放入python脚本,我已设法通过使用打开文档

subprocess.Popen('"C:\\Program Files\Microsoft Office\Office12\winword.exe"' '"P:\\docs\\daily checks.doc "')
Run Code Online (Sandbox Code Playgroud)

我似乎无法获得/mFilePrintDefault /mFileExit命令中的部分,我尝试使用+'"/mFilePrintDefault /mFileExit"'plus而不使用+,但随后文档将无法打开.

你能帮我看看如何打印这个word文档,还是有更好的方法

提前致谢

jco*_*ado 8

这应该工作:

subprocess.Popen(["C:\\Program Files\Microsoft Office\Office12\winword.exe", "P:\\docs\\daily checks.doc", "/mFilePrintDefault", "/mFileExit"]).communicate()
Run Code Online (Sandbox Code Playgroud)

或者,或许,

subprocess.Popen("'C:\\Program Files\Microsoft Office\Office12\winword.exe' 'P:\\docs\\daily checks.doc' /mFilePrintDefault /mFileExit", shell=True).communicate()
Run Code Online (Sandbox Code Playgroud)

当您使用shell=True该命令时,通过shell执行.这意味着您必须以与在shell中编写命令相同的方式传递单个字符串,也就是说,使用引号来防止带有空格的参数被拆分.

使用shell=False(默认值)时,不会通过shell执行该命令.这意味着你要自己拆分参数.你这样做的方式是传递一个包含所有参数的列表.在这种情况下,不需要额外的引用,因为列表元素已经提供了这些信息.