簡體   English   中英

Windows命令提示不適用於Python

[英]Windows Command Prompt Not working From Python

我正在嘗試從python獲取以下命令(在手動輸入以關閉mysql服務器時有效)。

我正在運行的代碼行是:

os.system('"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin" -u demo -pdemopw shutdown')

有什么想法為什么可以從命令提示符下而不是os.system上運行?如何解決?

使用Windows文件\\文件夾路徑時,幾乎總是使用原始字符串。 這是一個例子:

sql_admin = r"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin"

注意字符串開頭的r 這會將字符串轉換為原始字符串。 如果不這樣做,Python會查看反斜杠以查找特殊字符,例如\\n (換行符), \\t (制表符)或\\b (反斜杠)。 您的字符串中包含了后者。

找出正在發生的事情的一種方法是嘗試在解釋器中打印字符串。 看下面的例子:

>>> "C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin"
'C:\\Program Files\\MySQL\\MySQL Server 5.1\x08in\\mysqladmin'

>>> r"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin"
'C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\mysqladmin'

使用原始字符串有兩種選擇。 第一個是只是逃避反斜杠:

>>> "C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\mysqladmin"

我總是發現它有點丑陋,而且有點難以閱讀。 您還可以將反斜杠替換為正斜杠:

>>> "C:/Program Files/MySQL/MySQL Server 5.1/bin/mysqladmin"

這將起作用,盡管如果您是Windows人士,這看起來有些奇怪。 所以最后,我仍然建議使用原始字符串。

嘗試將\\更改為/ ,它應該可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM