我正在使用一个python脚本,由照片软件gimp调用PDF转换为JPG格式。 到目前为止,脚本工作正常,但是当它完成时,一个cmd窗口是由gimp打开“按任意键退出”。 这个CMD窗口是gimp.exe进程,我不能设法用我的脚本杀死它(我不想每次运行我的脚本时input用户input)。
我尝试了像os.system("taskkill /im gimp-2.8.exe")
和sys.exit(0)
这样的python命令,但是没有一个能够工作。
这是我的Python脚本:
import os,time,sys,glob,re from gimpfu import * rxcountpages = re.compile(r"/Type\s*/Page([^s]|$)", re.MULTILINE|re.DOTALL) #Convert a single pdf file def process(infile, outfile): print "Processing file %s " % infile for x in range(1,countPages(infile) + 1): print "Test" countStr = str(x) pdb.file_ps_load_setargs(100, 0, 0, 0, countStr, 6, 2, 2) image = pdb.file_ps_load(infile,infile) drawable = pdb.gimp_image_get_active_layer(image) print "File %s loaded OK" % infile #outfile=os.path.join('processed',os.path.basename(infile)) #outfile=os.path.join(os.path.dirname(infile),outfile) print outfile filename, file_extension = os.path.splitext(outfile) output = filename + "_" + countStr + ".jpg" print "Saving to %s" % outfile pdb.file_jpeg_save(image, drawable, output, output, 0.9,0,1,0,"",0,1,0,0) print "Saved to %s" % outfile pdb.gimp_image_delete(image) print "---------" def countPages(filename): data = file(filename,"rb").read() return len(rxcountpages.findall(data)) if __name__ == "__main__": print "Running as __main__ with args: %s" % sys.argv
这是我如何从Windows命令行调用我的gimp脚本:
"C:\Program Files\GIMP 2\bin\gimp-2.8.exe" -idf --batch-interpreter python-fu-eval -b "import sys;sys.path=['.']+sys.path;import PDF;PDF.process('%1','%2');PDF.exit()" -b "pdb.gimp_quit(1)"
我会认为gimp命令gimp_quit(1)
将closures窗口,但它不。
这似乎是这样一个简单的问题,但我已经花了几个小时,所以任何帮助表示赞赏。 谢谢。
好的,我通过在gimp特定论坛上询问解决方案:
额外的控制台窗口被打开,因为我没有指定瘸子应该记录它的消息。 这就是为什么它打开了一个额外的控制台窗口。
所以请求现在看起来像这样:
"C:\Program Files\GIMP 2\bin\gimp-console-2.8.exe" -idf --batch-interpreter python-fu-eval -b "import sys;sys.path=['.']+sys.path;import PDF;PDF.process('%1','%2');" -b "pdb.gimp_quit(1)" 1>c:\\temp\\gimp_startup.txt 2>&1