它没有在 subprocess.call (python) 中正确获取变量
It doesn't pick up the variable correctly in subprocess.call (python)
我正在创建一个电报机器人来将我请求的信息发送到应用程序。
当我 运行 下面的代码除了最后一部分外工作正常,当它执行 subprocess.call(['robocop', '--robocop', '--cpu', '--server {f}'])
时它似乎没有输入变量“f”的正确数据,因为它为我提供了 python 代码所在的服务器的信息,但没有我请求的服务器的信息。
robocop 脚本是我在 bash
中创建的应用程序
# Check CPU Status
@bot.message_handler(commands=['cpu'])
def command_long_text(m):
cid = m.chat.id
f = (m.text[len("/cpu"):])
bot.send_message(cid, "Collecting CPU information from " + f)
bot.send_chat_action(cid, 'typing')
time.sleep(3)
subprocess.call(['robocop', '--robocop', '--cpu', '--server {f}'])
你能帮帮我吗?
如果我将变量更改为字符串,它会正常工作。
subprocess.call(['robocop', '--robocop', '--cpu', '--server', 'appdb'])
谢谢!
正确的版本:
cid = m.chat.id
f = (m.text[len("/cpu"):])
bot.send_message(cid, "Collecting CPU information from " + f)
bot.send_chat_action(cid, 'typing')
time.sleep(3)
subprocess.call(['robocop', '--robocop', '--cpu', f'--server {f}'])
格式化字符串文字或 f-string
是前缀为 'f' 或 'F' 的字符串文字。这些字符串可能包含替换字段,它们是由花括号 {} 分隔的表达式。虽然其他字符串文字始终具有常量值,但格式化字符串实际上是在 运行 时间计算的表达式。
另见 PEP 498。
我正在创建一个电报机器人来将我请求的信息发送到应用程序。
当我 运行 下面的代码除了最后一部分外工作正常,当它执行 subprocess.call(['robocop', '--robocop', '--cpu', '--server {f}'])
时它似乎没有输入变量“f”的正确数据,因为它为我提供了 python 代码所在的服务器的信息,但没有我请求的服务器的信息。
robocop 脚本是我在 bash
中创建的应用程序# Check CPU Status
@bot.message_handler(commands=['cpu'])
def command_long_text(m):
cid = m.chat.id
f = (m.text[len("/cpu"):])
bot.send_message(cid, "Collecting CPU information from " + f)
bot.send_chat_action(cid, 'typing')
time.sleep(3)
subprocess.call(['robocop', '--robocop', '--cpu', '--server {f}'])
你能帮帮我吗?
如果我将变量更改为字符串,它会正常工作。
subprocess.call(['robocop', '--robocop', '--cpu', '--server', 'appdb'])
谢谢!
正确的版本:
cid = m.chat.id
f = (m.text[len("/cpu"):])
bot.send_message(cid, "Collecting CPU information from " + f)
bot.send_chat_action(cid, 'typing')
time.sleep(3)
subprocess.call(['robocop', '--robocop', '--cpu', f'--server {f}'])
格式化字符串文字或 f-string
是前缀为 'f' 或 'F' 的字符串文字。这些字符串可能包含替换字段,它们是由花括号 {} 分隔的表达式。虽然其他字符串文字始终具有常量值,但格式化字符串实际上是在 运行 时间计算的表达式。
另见 PEP 498。