如何在python中创建文件夹内的文件

时间:2013-07-12 12:39:38

标签: python file imagemagick directory

我正在尝试使用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文件

1 个答案:

答案 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)