我正在尝试将一些PDF转换为JPG,并使用pdf2jpg做到这一点。
我运行的代码是:
inputPath = sys.argv[1].replace("\\", "/")
print(inputPath)
# Get parent folder of the file
parentFolder = "/".join(inputPath.split("/")[:-1])
print(parentFolder)
# Convert pdf to jpg in same folder
result = pdf2jpg.convert_pdf2jpg(inputPath, parentFolder, pages="1")
print(result)
运行此命令时,出现的错误是:
NotADirectoryError: [WinError 267] The directory name is invalid: 'C:/Users/Username/Desktop\\test.pdf'
奇怪的是,当我运行相同的代码并注释掉最后两行时,我得到:
C:/Users/Username/Desktop/test.pdf
C:/Users/Username/Desktop
似乎inputPath本身已正确转换为正斜杠,但在被pdf2jpg引用时又恢复为反斜杠。
ETA:使用原始文字,切换到反斜杠而不是正斜杠。现在代码如下:
inputPath = sys.argv[1]
inputPath_raw = r'%s'%inputPath
print(inputPath_raw)
parentFolder = chr(92).join(inputPath_raw.split(chr(92))[:-1])
print(parentFolder)
result = pdf2jpg.convert_pdf2jpg(inputPath_raw, parentFolder, pages="1")
print(result)
然后我给它输入:
convert.py "C:\Users\Username\Desktop\test.pdf"
我看到的错误是:
NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\Username\\Desktop\\test.pdf'
打印变量仍然可以提供正确的输出作为文件路径,只是这一部分无法识别路径。
答案 0 :(得分:3)
更新:
问题是 pdf2jpg 试图创建一个目录,该目录以outputpath中的pdf文件命名。转换文件test.pdf
时,它将(尝试)在指定的输出路径中创建名为\test.pdf
的目录。
由于源目录和目标目录相同,因此将失败,因为在同一路径中具有相同名称test.pdf
的文件和目录是文件系统的限制。
这是在inputpath
+ \pdf2jpg
目录中创建输出jpg的测试,它将起作用:
# -*- coding: utf-8 -*-
import os
import sys
from pdf2jpg import pdf2jpg
source = sys.argv[1]
destination = os.path.dirname(source)+"\pdf2jpg"
try:
os.mkdir(destination)
except FileExistsError:
# pdf2jpg directory existing
pass
result = pdf2jpg.convert_pdf2jpg(source, destination, pages="ALL")