0

我已经搜索了高和低的关于如何在 Windows 中从 python 中执行命令行的简单解释。

subprocess 包似乎是答案,但我似乎没有足够的经验来做它的头或尾。

由于缺乏窗口焦点,或缺乏示例和预期输出,我审查了一些问题无济于事。例如命令行问题

例如,有人可以解释如何实现以下目标:

  1. 在python中创建一个文件名(例如"db_dump 2013-08-05.sql"
  2. 使用 mysql 命令行实用程序转储 mysql 数据库(例如mysqldump --result-file="db_dump 2013-08-05.sql" --all-databases
4

3 回答 3

1

像这样的东西?

from subprocess import call
call('mysqldump --result-file="db_dump 2013-08-05.sql" --all-databases', shell=True)

请记住,shell=True如果您使用不受信任的用户提供的参数,可能会带来安全风险。例如,当您让不受信任的用户指定文件名时。

于 2013-08-05T17:08:45.470 回答
0

你可以试试 Fabric,尤其是“local()”命令:

http://docs.fabfile.org/en/1.7/api/core/operations.html?highlight=local#fabric.operations.local

在您的python代码中,您可以像这样使用它

local('mysqldump ...')

Fabric 通常在 shell 中使用(使用“fab”命令和包含要执行的 python 代码的 fabfile.py)。要将其包含在另一个 python 脚本中,请检查此(第一个答案):

在 python 脚本中启动 Fab 文件

问候,

于 2013-08-05T17:21:14.583 回答
0
  1. fname = "db_dump%s.sql"%time.strftime("%Y-%m-%d")假设这就是你的意思

  2. os.system("mysqldump --result-file=\"%s\" --all-databases"%fname)

于 2013-08-05T17:09:03.937 回答