-3
import os
os.system("echo \"Hello World\"")
Hello World
0
現在我想的參數發送到回聲蟒。如何從python發送參數到bash中?
name ="ok"
os.system("echo {name}")
結果是{name}
,不是我所期望的。
如何獲得ok
?
如何發送參數(名稱)的值ok
到bash的蟒蛇?
import os
os.system("echo \"Hello World\"")
Hello World
0
現在我想的參數發送到回聲蟒。如何從python發送參數到bash中?
name ="ok"
os.system("echo {name}")
結果是{name}
,不是我所期望的。
如何獲得ok
?
如何發送參數(名稱)的值ok
到bash的蟒蛇?
的權答案是使用
subprocess.check_call(["echo",name])
這避免了需要構造一個字符串,報價的事情,以保護他們免受外殼,信號處理的os.system()
效果,誘惑忽略返回狀態。
使用字符串格式化,在Py3.6也使用'F-string',例如'使用os.system(F 「回波{名稱}」)',在早期形式的Python'使用os.system的( 「回波{名稱}」。格式(名稱=名))' – AChampion
通常,字符串格式化也不安全。您通常不會注意到'echo'的問題,但如果'name'是一個文件名,並且有一個或多個空格,請考慮'os.system(f「ls {name}」)「。 'ls'將接收部分文件名的多個參數,而不是整個文件名作爲單個參數。 – chepner