![](/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.