我正在尝试将一些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/DesktopinputPath本身似乎被正确地转换为正斜杠,但在被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'打印变量仍然给出正确的输出作为文件路径,只是这个部分无法识别路径。
发布于 2018-08-22 11:25:19
更新:
问题是pdf2jpg正在尝试创建一个目录,该目录以输出路径中的pdf文件命名。当转换文件test.pdf时,它将(尝试)在指定的输出路径中创建一个名为\test.pdf的目录。
因为源目录和目标目录是相同的,所以它将失败,因为在相同的路径中有一个文件和一个同名test.pdf的目录是文件系统的限制。
下面是一个在inputpath + \pdf2jpg dir中创建输出jpgs的测试,它可以工作:
# -*- 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")https://stackoverflow.com/questions/51964556
复制相似问题