我有一个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'}
subprocess.get_output()
返回一个字节字符串,但是Python将其识别为字符串。因此,您需要首先对其进行.encode(),然后对其进行解码():