我注意到這個代碼:轉義雙引號與單引號
os.system("'{0}'".format(path))
,看到有一個人不得不改成這樣:
os.system("\"{0}\"".format(path))
筆者從單一改變它想知道要加雙引號給你什麼好處?
原來這裏是犯我把它從:https://github.com/mattn/legit/commit/84bd1b1796b749a7fb40e0b734d2de29ddc9d3d9
我注意到這個代碼:轉義雙引號與單引號
os.system("'{0}'".format(path))
,看到有一個人不得不改成這樣:
os.system("\"{0}\"".format(path))
筆者從單一改變它想知道要加雙引號給你什麼好處?
原來這裏是犯我把它從:https://github.com/mattn/legit/commit/84bd1b1796b749a7fb40e0b734d2de29ddc9d3d9
沒有太多真的,但拇指使用單引號的文字作業和打印的規則。這樣你將避免打印不應該在那裏的東西。
單引號通常很有用,因爲它們是文字,並且包含您輸入的字符,例如「您好/」將實際打印您好/
不過,如果你需要像「您好/ N」,如果你把它放在單引號它會給你從字面上「嗨there/n'而雙引號會給你你需要的結果「你好」,然後打破。
只是爲了確保我明白他們這樣做是因爲他們說沒有動態內容? – Brandt
我不是Python專家,但這是我對上述的想法。第一個帶有單引號的例子將它作爲參數的一部分傳遞給方括號{}。而雙引號將通過方括號的表示。 Ruby中的字符串插值類似。雙引號將插入「#{@ user}」,其中單引號「{@user}」不會。我希望有所幫助。 – PericlesTheo
感謝您的迴應,我認爲這解釋了我所要求的最好。 – Brandt
在windows上,命令行參數由程序it-self解析,而不是shell或cmd.exe。大多數windows程序一般都用雙引號分析引用的字符串。 python.exe
是一樣的。在unix操作系統上,命令行參數由shell解析。而且大多數shell都解析單/雙引號。當然,雙引號擴大$
或者shell可以處理的東西。但是,路徑將不包含$
。
此更改是可以在許多操作系統上正常工作的解決方法。
這是一個Python的問題嗎? –
你想知道有什麼好處嗎?它會根據需要輸出字符串,用雙引號括起來,而不是用單引號。而且,這不是Ruby或Rails的問題,所以我刪除了他們的標籤。 –
確定對不起,這是點擊相當多,但是我想知道發生了什麼 – Brandt