Python使用“传递文件名”/&引用;及;()";代写

Python使用“传递文件名”/&引用;及;()";代写,python,pdf,path,directory,filenames,Python,Pdf,Path,Directory,Filenames,我试图获取文件夹中的所有文件名,然后使用相同的名称保存jpg。当我运行这个脚本时,一切正常。我没有足够的时间每次自己写文件名,所以我把所有的文件名都传给文件夹PDF。 下面是以下代码的输出 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(

我试图获取文件夹中的所有文件名,然后使用相同的名称保存jpg。当我运行这个脚本时,一切正常。我没有足够的时间每次自己写文件名,所以我把所有的文件名都传给文件夹PDF。 下面是以下代码的输出

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(“pdfs/test1.pdf”,“jpgs/test1.jpg”)

很好。现在我想循环浏览导入的文件列表。如您所见,我正在循环和打印以获得以下输出:

##### 34209280 c_void_p(34209280)
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
pdfs/test1.pdf
/jpgs/test1.jpg
pdfs/test1_(6th_copy).pdf
/jpgs/test1_(6th_copy).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)

# ADDED THIS LINE: pdf2jpeg(input_file_name, output_file_name)
# INSTEAD OF pdf2jpeg("pdfs/test1.pdf", "jpgs/test1.jpg")
我得到这个输出:

pdfs/test1 (copy).pdf
jpgs/test1_(copy).jpg
Traceback (most recent call last):
  File "gsPdf2Jpg.py", line 27, in <module>
    pdf2jpeg(str(input_file_name), str(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)
pdfs/test1(副本).pdf
jpgs/test1(复制).jpg
回溯(最近一次呼叫最后一次):
文件“gsPdf2Jpg.py”,第27行,在
pdf2jpeg(str(输入文件名),str(输出文件名))
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)
如何传递正确的目录/文件名以运行函数?
我正在使用Ubuntu14.06 python 2.7和Ghostscript库,括号似乎是问题所在。斜杠没问题。你是说用下划线替换实际文件名中的空格吗
input\u file\u name=str(“pdfs/”+str(input\u file)。替换(“,”)
失败,因为唯一的区别是我正在传递所需的文件名,而不是将其写入?括号似乎是问题所在。斜杠没问题。你是说用下划线替换实际文件名中的空格吗
input\u file\u name=str(“pdfs/”+str(input\u file)。替换(“,”)
失败,因为唯一的区别是我正在传递所需的文件名,而不是将其写入?
pdfs/test1 (copy).pdf
jpgs/test1_(copy).jpg
Traceback (most recent call last):
  File "gsPdf2Jpg.py", line 27, in <module>
    pdf2jpeg(str(input_file_name), str(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)