以16为底的int()的无效文字

时间:2019-02-25 16:47:38

标签: python string subprocess

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

但是,如果我在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' 

1 个答案:

答案 0 :(得分:-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周围,它将成功。它现在可以使用,但是我不能完全确定它是如何工作的,如果有人可以解释它会很好吗?