运行 Python os.system 标签中的命令

Running a command within a Python os.system tag

我正在尝试通过一个简单的 discord 机器人来控制我的灯光,但 运行 遇到了一个问题。我需要 运行 这个命令并且正在使用 discord.py 来执行它:

if message.content.startswith('$Light-Blue'):
    await os.system('coap-client -m put -u "demo" -k "X2CYInVgcFN7i26k" -e '{ "3311": [{ "5706": "4a418a" }] }' "coaps://192.168.110.241:5684/15001/65537"')
    await message.channel.send('Turned changed color 1 Light')

我遇到的问题是 Python 由于使用了标签而试图将命令解释为 Python 代码。所以我得到一个语法错误。如何修复代码以便 Python 停止将命令视为代码?

这是我收到的错误:

File "bot.py", line 25
    await os.system('coap-client -m put -u "demo" -k "X2CYInVgcFN7i26k" -e '{ "3311": [{ "5706": "4a418a" }] }' "coaps://192.168.110.241:5684/15001/65537"')
                                                                            ^
SyntaxError: invalid syntax

您不能在 ' 分隔的字符串中只使用 ',因为 python 会混淆。请考虑使用 ''' 分隔的字符串,它允许您将 ' 替换为

await os.system('coap-client -m put -u "demo" -k "X2CYInVgcFN7i26k" -e '{ "3311": [{ "5706": "4a418a" }] }' "coaps://192.168.110.241:5684/15001/65537"')

使用

await os.system('''coap-client -m put -u "demo" -k "X2CYInVgcFN7i26k" -e '{ "3311": [{ "5706": "4a418a" }] }' "coaps://192.168.110.241:5684/15001/65537"''')