PYTHON ghostscript循环只执行一次

时间:2017-07-07 05:57:23

标签: python pdf path

我有一个名为pdfs的文件夹。我首先获取文件列表并打印出来:

import ghostscript, os
from os import listdir
from os.path import isfile, join

def get_files(path):
    input_files = [f for f in listdir(path) if isfile(join(path, f))]
    return input_files

def pdf2jpeg(pdf_input_path, jpeg_output_path):
    args = ["pdf2jpeg", # actual value doesn't matter
            "-dNOPAUSE",
            "-sDEVICE=jpeg",
            "-dJPEGQ=95",
            "-r600x600",
            "-sOutputFile=" + jpeg_output_path,
            pdf_input_path]
    ghostscript.Ghostscript(*args)

if __name__ == '__main__':
    input_files = get_files("pdfs")
    # pdf2jpeg("pdfs/test1.pdf", "jpgs/test1.jpg")
    for input_file in input_files:
        input_file_name = str("pdfs/"+str(input_file))
        output_file_name = str('jpgs/'+str(input_file).replace(" ", "_").replace("pdf", "jpg"))#split(".")[0]
        print input_file_name
        print output_file_name
        # pdf2jpeg(input_file_name, output_file_name)

输出:

pdfs/test1 (5th copy).pdf
jpgs/test1_(5th_copy).jpg
pdfs/test1 (copy).pdf
jpgs/test1_(copy).jpg
pdfs/test1 (4th copy).pdf
jpgs/test1_(4th_copy).jpg
pdfs/test1 (3rd copy).pdf
jpgs/test1_(3rd_copy).jpg
pdfs/test1 (another copy).pdf
jpgs/test1_(another_copy).jpg

此外,当我执行pdf2jpeg("pdfs/test1.pdf", "jpgs/test1.jpg")时,代码可以正常运行,我得到转换后的jpg。

现在,当我想循环遍历列表并取消最后一行时:pdf2jpeg(input_file_name, output_file_name)

if __name__ == '__main__':
    input_files = get_files("pdfs")
    # pdf2jpeg("pdfs/test1.pdf", "jpgs/test1.jpg")
for input_file in input_files:
    input_file_name = str("pdfs/"+str(input_file))
    output_file_name = str('jpgs/'+str(input_file).replace(" ", "_").replace("pdf", "jpg"))#split(".")[0]
    print input_file_name
    print output_file_name
    pdf2jpeg(input_file_name, output_file_name)

我得到了这个错误:

Traceback (most recent call last):
  File "gsPdf2Jpg.py", line 28, in <module>
    pdf2jpeg(input_file_name, output_file_name)
  File "gsPdf2Jpg.py", line 17, in pdf2jpeg
    ghostscript.Ghostscript(*args)
  File "/home/trackstarz/prohealth/phenv/local/lib/python2.7/site-packages/ghostscript/__init__.py", line 157, in Ghostscript
    stderr=kw.get('stderr', None))
  File "/home/trackstarz/prohealth/phenv/local/lib/python2.7/site-packages/ghostscript/__init__.py", line 72, in __init__
    rc = gs.init_with_args(instance, args)
  File "/home/trackstarz/prohealth/phenv/local/lib/python2.7/site-packages/ghostscript/_gsprint.py", line 177, in init_with_args
    raise GhostscriptError(rc)
ghostscript._gsprint.GhostscriptError: limitcheck

我经历过并将循环更改为仅通过单个input_files [0],input_files [1]并且它们正常工作,当我循环它们时它们停止工作。我唯一能想到的是我必须从内存中清除一些内容,或者从文件中断开连接。我只是在这里猜测。

0 个答案:

没有答案