在Python中打印word文档

时间:2011-12-07 09:42:57

标签: python

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

"C:\Program Files\Microsoft Office\Office12\winword.exe" "p:\docs\daily checks.doc" /mFilePrintDefault /mFileExit

我正在尝试将其放入python脚本中,我已设法使用

打开文档
subprocess.Popen('"C:\\Program Files\Microsoft Office\Office12\winword.exe"' '"P:\\docs\\daily checks.doc "')

我似乎无法在命令中获得/mFilePrintDefault /mFileExit部分,我尝试使用+'"/mFilePrintDefault /mFileExit"'加上没有+,但文档将无法打开。

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

提前致谢

2 个答案:

答案 0 :(得分:8)

这应该有效:

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

或者,或者,

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

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

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

答案 1 :(得分:0)

尝试使用以下内容:

subprocess.Popen('"C:\\Program Files\Microsoft Office\Office12\winword.exe" m"P:\\docs\\daily checks.doc" /mFilePrintDefault /mFileExit')

Popen需要一个完整的字符串或一个args列表,基本上将您在shell中键入的内容输入Popen并且它会起作用。

documentation on Popen州:

  

args应该是一个字符串或一系列程序参数。

相关问题