PYTHON ghostscript循环只执行一次
我有一个叫pdfs的文件夹。我首先获取文件列表并打印它们: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
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