[英]How can I escape sub-window with or without any input string in python curses?
[英]How can I escape braces in string to be fed to sub process
import subprocess
profile_val = 'ishan'
cmd = 'instaloader --post-metadata-txt="{likes} likes, {comments} comments, {caption}" --login=blabla_id --fast-update' + ' ' + profile_val)
subprocess.call(cmd.split())
它不會在{likes}中轉義大括號,並且像單獨的部分命令一樣對待並失敗。
不,您的問題是您正在使用split()
構造要執行的命令的參數列表。 您還使用了引號,引號是shell語法,即使您不調用shell也是如此。
只是首先使用一個數組,所以不必拆分:
cmd = ('instaloader', '--post-metadata-txt={likes} likes, {comments} comments, {caption}', '--login=blabla_id', '--fast-update', profile_val)
subprocess.call(cmd)
Stephane Chazelas提供了最佳解決方案,但是如果您必須拆分類似於shell的命令,則可以使用shlex。
import subprocess
import shlex
profile_val = 'ishan'
cmd = 'instaloader --post-metadata-txt="{likes} likes, {comments} comments, {caption}" --login=blabla_id --fast-update "' + profile_val + '"'
subprocess.call(shlex.split(cmd))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.