Windows命令提示符不工作从Python

我试图从python工作得到以下命令(这是手动input来closuresmysql服务器)。

我正在运行的代码行是:

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的家伙,看起来有些奇怪。 所以最后,我仍然建议使用原始字符串。

尝试改变\/它应该工作。