![](/img/trans.png)
[英]TypeError: str, bytes or bytearray expected, not list
[英]TypeError: expected bytes, bytearray or buffer compatible object
我正在尝试将Python2脚本(运行良好)移植到Python3,但是我遇到了问题。
这是我的代码:
def encode_script(duck_text, duck_lang, bunny=None):
lang_dir = os.path.join(os.path.dirname(__file__), 'languages')
language_dict = os.path.join(lang_dir, '{0}.json'.format(duck_lang))
lang_file = json.load(open(language_dict))
encoded_file = parse_text(duck_text, lang_file, bunny)
if encoded_file and not bunny:
if 'Not in Language' in encoded_file:
return encoded_file
else:
try:
encoded_file = "".join(encoded_file)
duck_blob = io.StringIO()
duck_blob.write(encoded_file.decode('hex'))
duck_bin = duck_blob.getvalue()
duck_blob.close()
return duck_bin
except Exception as e:
print ("Error creating inject.bin: {0}".format(e))
return False
这是错误:
D:\encdec\Encoders-decoders\DuckToolkit-master>python ducktools.py -e -l us test.txt ducky.bin
[+] Reading Input file.
[-] Encoding File
Traceback (most recent call last):
File "ducktools.py", line 58, in <module>
duck_bin = encoder.encode_script(duck_text, language)
File "D:\encdec\Encoders-decoders\DuckToolkit-master\ducktoolkit\encoder.py", line 160, in encode_script
encoded_file = parse_text(duck_text, lang_file, bunny).decode()
File "D:\encdec\Encoders-decoders\DuckToolkit-master\ducktoolkit\encoder.py", line 24, in parse_text
duck_text = duck_text.replace("\r", "")
TypeError: expected bytes, bytearray or buffer compatible object
该脚本可在Python2上完美运行。 我该怎么办?
我知道这有点晚了,但是当将带有.replace()的语句从python2转换为python3时,我遇到了同样的问题,并且能够通过在.replace()中的参数之前加上'b'来修复它,因此请尝试更改:
duck_text = duck_text.replace("\r", "")
至:
duck_text = duck_text.replace(b"\r", b"")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.