[英]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 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.