2013年8月11日 星期日

[python]處理給 shell 的參數

對我個人來說也困擾很久的問題。
我自己處理在傳參數給 os.system 的時候,若是有空隔或單引號的時候,
會特別用別的字取代,但如此也就把參數值也改掉了。
只有我自己用的程式還好,但是別人就是要用空隔跟單引號怎辦呢?

今天很巧的在 pycontw 2013 的影片裡,看到有人用以下解法。
馬上抄下來,以後慢慢用。
真是感恩。

def escapeShellArg(string):
  return "'"+string.replace("'", "'\\''")+"'"

args = ' '.join(map(escapeShellArg, argv))
os.system('ffmpeg -i '+args)

來源:

http://www.youtube.com/watch?v=RszFch-fjJc 15:50

pycontw 2013 郭學聰

沒有留言:

張貼留言