打印的python变量不等于变量值

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

我有一个Python脚本,该脚本使用子过程调用php函数。 php脚本的输出被捕获为变量以供进一步使用。在分析存储的变量时,我发现如果我打印该变量,它的值与变量本身的值是不同的,我不明白为什么。我正为自己感到尴尬,所以请赐教。

是,在这个虚构示例中,密码是“密码”

cmd = "/usr/bin/php -f /opt/hello_world.php {} {}".format(encrypted_password,of_secret)
decrypted_password = subprocess.getoutput(cmd)
print(decrypted_password)
pdb.set_trace()

在pdb中,这是输出

password
(Pdb) decrypted_password
'\x00p\x00a\x00s\x00s\x00w\x00o\x00r\x00d'
(Pdb) print(decrypted_password)
password
(Pdb) locals()
{'cmd': '/usr/bin/php -f /opt/hello_world.php f2e57ba074b3c3d8d4d010bcff13083dc5928107f8cfbfaa4a52fff0155eebe5 JqiRnKJBaSwEOCI', 'decrypted_password': '\x00p\x00a\x00s\x00s\x00w\x00o\x00r\x00d'}
python-3.x pdb
1个回答
0
投票

subprocess.get_output()返回一个字节字符串,但是Python将其识别为字符串。因此,您需要首先对其进行.encode(),然后对其进行解码():

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