我正在尝试使用Imagemagick和python将pdf转换为图像,以下是我的代码
以下文件将pdf文件作为命令行的输入并转换为图像
convert.py
from subprocess import check_call, CalledProcessError
from os.path import isfile
filename = sys.argv[1]
try:
if isfile(filename):
check_call(["convert", "-density", "150", "-trim",
filename, "-quality", "100", "-scene", "1", 'hello.jpg'])
except (OSError, CalledProcessError, TypeError) as e:
print "-----{0}-----".format(e)
上面的代码工作正常,运行文件后,我的目录结构与结果文件是
codes
convert.py
example.pdf
hello.jpg
但我想要的是在一个名为pdf文件的文件夹中创建结果图像(jpg)文件,如下所示
codes
convert.py
example.pdf
example/
hello.jpg
所以任何人都可以让我知道如何使用上面的pdf名称if not exists
动态创建目录,并创建一个如上所述的jpg文件
答案 0 :(得分:1)
使用os.path.splitext
删除文件扩展名。像这样:
if isfile(filename):
dirname = os.path.splitext(filename)[0]
if not os.path.isdir(dirname):
os.mkdir(dirname)
outfile = os.path.join(dirname, "hello.jpg")
check_call(["convert", "-density", "150", "-trim",
filename, "-quality", "100", "-scene", "1", outfile])
修改强>
要将新目录放在当前工作目录中而不是输入文件的父目录中,请使用os.path.basename()
和os.getcwd()
:
dir_base = os.path.basename(os.path.splitext(filename)[0])
dirname = os.path.join(os.getcwd(), dir_base)