int()的基数为16的文字无效

问题描述 投票:-1回答:1

我有以下代码的问题。我正在运行python脚本来运行exe并将参数传递给它。我得到以下错误:基于16的int()的ValueError无效文字:

但是,如果我在0之后和双引号之前放置一个额外的半冒号(我不需要)它将起作用。我的字符串有问题吗?

program="C:\Program Files (x86)\program.exe"
args='"21022019;A0A1A2A3A4A5A6A7;B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF;1;1982;0"-e fixed -k aa11bb22cc33dd44ee55ff6600112233 -f jf_Creds_python.hex'
subprocess.call([program,args])

这是完整的错误:

Traceback (most recent call last):
  File "<string>", line 249, in <module>
    File "<string>", line 53, in main 
ValueError: invalid literal for int() with base 16: '"21022019' 
python string subprocess
1个回答
-1
投票

我找到了一个解决方案,但并没有真正理解它。

program="C:\Program Files (x86)\program.exe"
args='"21022019;A0A1A2A3A4A5A6A7;B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF;1;1982;0"-e fixed -k aa11bb22cc33dd44ee55ff6600112233 -f jf_Creds_python.hex'
subprocess.call([program,{args}])

如果我在args周围放置花括号,它就会成功。它现在有效,但我不完全确定它是如何工作的,如果有人可能会解释它会很棒吗?

© www.soinside.com 2019 - 2024. All rights reserved.