我試圖從Python文件運行命令:密碼被用作命令
p = subprocess.Popen("mysqldump -h" + hostname + " -u" + mysql_user + " --password=" + mysql_pw + " " + db + " > dump_" + hostname + "_" + timestamp + ".sql", shell=True)
但--password=
甚至-p
不斷得到絞死了我的密碼字符串
密碼與此類似結構:
[email protected]&sfeafxegwa
命令行錯誤:
'sfeafxegwa' is not recognized as an internal or external command,
operable program or batch file.
使用try:
與
shell=True
的問題是,最好在舊版本的文檔的解釋'&'被bash解釋,並將命令的前半部分作爲自己的進程分叉,然後在下半部分失敗。上面提到的將會在密碼字符串周圍添加單引號。 –此外,恕我直言,這將是更多使用格式字符串可讀 –
@MattClark,這很有道理,但我仍然收到錯誤:''sfeafxegwa'' ',這次用額外的'''非常非常真實@tobias_k - 謝謝! –