我这里有一个简单的批处理文件,它将从命令行打印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文档,或者有更好的方法
提前致谢
答案 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
并且它会起作用。
args应该是一个字符串或一系列程序参数。