微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 os.system 或 subprocess 中传递 python 变量?

如何解决如何在 os.system 或 subprocess 中传递 python 变量?

我有一个 python 函数,它使用随机生成随机字符串并将其分配给 python 中的一个变量我想在 os.system 命令中使用它

os.system("MysqL -u root --password=variable here < /tmp/db.setup")

如何实现这一目标?

解决方法

使用 f-string

os.system(f"mysql -u root --password={variable_name} < /tmp/db.setup")
,

字符串插值或 f 字符串(与我的同时提供的其他答案):

os.system("mysql -u root --password=$'%s' < /tmp/db.setup" % (password,))

我会将它包装在一个函数中,以便您传入变量。如果您的密码包含任何 shell 魔法,如 !、?、* 等,那么您需要引用它(就像我所做的那样)。如果您的密码包含 ',则需要用 ' 引用它。

使用 mysql 模块而不是 os.system。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。