python - Windows 命令提示符在 Python 中不起作用

标签 python mysql windows command-line

我正在尝试从 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 用户,这看起来有点奇怪。所以最后我还是推荐使用原始字符串。

关于python - Windows 命令提示符在 Python 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27292877/

相关文章:

mysql - Django Raw Query SQL 注入(inject)显示攻击

windows - 在 32 位处理器的 Windows 7 上安装 Hadoop?

windows - 应该如何在 Windows 上使用开源库?

python - 如何编写一个接受 int 或 float 的 C 函数?

python - 在 Numpy 中逐像素迭代两个图像(具有随机条件)

python - 将 DataFrame 中的多个值与另一个不同形状的值进行比较

mysql - 如何通过计算IN和OUT之差来计算物理量

java - 我如何在我的java程序中使用随WAMP服务器安装的MySQL

python - `scipy.optimize.root` 更快的根查找

python if语句总是