Windows上的python 2.3最好的方法是执行具有多个参数和路径中空格的ghostscript之类的程序吗?

发布于 2021-01-29 16:19:27

当然有某种抽象允许这种情况吗?

这本质上是命令

cmd = self._ghostscriptPath + 'gswin32c -q -dNOPAUSE -dBATCH -sDEVICE=tiffg4 
      -r196X204 -sPAPERSIZE=a4 -sOutputFile="' + tifDest + " " + pdfSource + '"'

os.popen(cmd)

这种方式对我来说真的很脏,必须有一些pythonic方式

关注者
0
被浏览
40
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    使用子进程,它superseeds
    os.popen,尽管它是没有太大的一个抽象的更多:

    from subprocess import Popen, PIPE
    output = Popen(["mycmd", "myarg"], stdout=PIPE).communicate()[0]
    
    #this is how I'd mangle the arguments together
    output = Popen([
        self._ghostscriptPath, 
       'gswin32c',
       '-q',
       '-dNOPAUSE',
       '-dBATCH',
       '-sDEVICE=tiffg4',
       '-r196X204',
       '-sPAPERSIZE=a4',
       '-sOutputFile="%s %s"' % (tifDest, pdfSource),
    ], stdout=PIPE).communicate()[0]
    

    如果只有python 2.3而没有子进程模块,则仍然可以使用os.popen

    os.popen(' '.join([
        self._ghostscriptPath, 
       'gswin32c',
       '-q',
       '-dNOPAUSE',
       '-dBATCH',
       '-sDEVICE=tiffg4',
       '-r196X204',
       '-sPAPERSIZE=a4',
       '-sOutputFile="%s %s"' % (tifDest, pdfSource),
    ]))
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看