PYTHON ghostscript循环只执行一次

PYTHON ghostscript循环只执行一次,python,pdf,path,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_pa

我有一个叫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(输入文件名,输出文件名)

我得到这个错误:

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
回溯(最近一次呼叫最后一次):
文件“gsPdf2Jpg.py”,第28行,在
pdf2jpeg(输入文件名、输出文件名)
pdf2jpeg格式的文件“gsPdf2Jpg.py”,第17行
ghostscript.ghostscript(*args)
文件“/home/trackstarz/prohealth/phenv/local/lib/python2.7/site-packages/ghostscript/_-init___;.py”,第157行,在ghostscript中
stderr=kw.get('stderr',无))
文件“/home/trackstarz/prohealth/phenv/local/lib/python2.7/site-packages/ghostscript/_-init____;.py”,第72行,in__-init__
rc=gs.init_和_参数(实例,参数)
文件“/home/trackstarz/prohealth/phenv/local/lib/python2.7/site packages/ghostscript/_gsprint.py”,第177行,在init_中带有_参数
引发GhostscriptError(rc)
ghostscript.\u gsprint.GhostscriptError:limitcheck

我完成并更改了循环,使其仅遍历单个输入_文件[0],输入_文件[1],它们都可以工作,当我将它们全部循环时,它们就停止工作。我唯一能想到的是,我必须清除内存中的某些内容,或者断开与文件的连接。我在这里只是胡乱猜测。

检查缩进,使用这个缩进,您只需执行函数
pdf2jpeg()loop@PRMoureu我也这么想,但它是否仍然适用于最后的
input\u file\u name
outpuy\u file\u 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