2013-07-12 5 views
0

Я пытаюсь преобразовать PDF в изображения с помощью ImageMagick и питона и ниже мои кодыКак создать файлы внутри папки, в питоне

следующего файл принимает 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 

Но что все, что я хочу, чтобы создать результирующее изображение (JPG) файл в папку с именем файла в формате PDF, как показано ниже

codes 
    convert.py 
    example.pdf 
    example/ 
      hello.jpg 

Так может кто-нибудь, пожалуйста, дайте мне знать, как создать каталог динамически с именем в формате PDF if not exists, как описано выше, и создать JPG-файл, как выше

ответ

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]) 

EDIT:

Чтобы иметь новый каталог в текущем рабочем каталоге, а не в родительском каталоге входного файла, используйте os.path.basename() и os.getcwd():

dir_base = os.path.basename(os.path.splitext(filename)[0]) 
dirname = os.path.join(os.getcwd(), dir_base) 
+0

k, если я делаю, как указано выше, когда я дал входной файл как «python convert.py /home/user/pdfs/example.pdf», тогда код генерирует «example/hello.jpg» в каталоге «/ home/user/pdfs/", но все, что я хочу, это создать папка, где есть файл кода i.e., convert.py существует –

+0

Используйте 'os.getcwd()' для получения текущего рабочего каталога – Henrik

Смежные вопросы