我正在尝试使用python打开特定书签的PDF。
到目前为止,我能够在命令提示符中运行以下命令并获得我想要的内容( last 是PDF test.pdf中命名目标的名称)
"C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" /A "nameddest=last" "C:\Users\User\Desktop\test.pdf"
但是当我去Python并尝试使用这样的子进程模块时:
import subprocess
subprocess.call(['"C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" /A "nameddest=last" "C:\\Users\\User\Desktop\test.pdf"'], shell=True)
我得到“文件名,目录名或卷标语法不正确。”我之前尝试过的东西导致Adobe Reader打开,但是给我一个具有相同消息的对话框
为什么在python中运行时会发生什么变化?我该如何解决?
我在Windows 8上运行Anaconda 2.1.0并使用Acrobat 10创建目标。我已经玩了2到3年的python,但是不知道比一个学期的一个介绍编程课程的人多。
答案 0 :(得分:2)
我是个白痴。
"C:\\Users\\User\Desktop\test.pdf"
是无效路径,因为\ test.pdf中的\ t被解释为选项卡... 将其更改为\ test.pdf后,它可以正常工作。
以后遇到同样问题的人的代码:
import os
import subprocess
page = "3"
path_to_pdf = os.path.abspath("C:\\Users\\User\Desktop\\test.pdf")
path_to_acrobat = os.path.abspath('C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe')
process = subprocess.Popen([path_to_acrobat, '/n', '/A', 'page=' + page, path_to_pdf], shell=False, stdout=subprocess.PIPE)
process.wait()