簡體   English   中英

將 Python2 更改為 Python3 錯誤:TypeError:需要類似字節的對象,而不是“str”

[英]Changing Python2 to Python3 Error: TypeError: a bytes-like object is required, not 'str'

我是 python 的新手,但我的任務是將我不熟悉的文件從 python2 轉換為 python3。 有一個問題特別困擾着我。 我開始於:

graphical_users = [line.split() for line in check_output("who".split('\n') if " :0" in line]

然后我把它改成

graphical_users = []
        for line in check_output("who").split('\n'):
                if " :0" in line:
                    graphical_users.append(line.split()) 

為了更容易調試並找到了該行

for line in check_output("who").split('\n'):

成為罪魁禍首。

無論哪種方式,因為它們是等效的,它給了我錯誤:“TypeError:需要一個類似字節的對象,而不是'str'”然后我查看其他人是否有這個問題,大多數地方都在談論人們以二進制模式打開文件或諸如此類,但據我所知,情況並非如此。 如果有人有任何建議,我願意嘗試任何事情。 另外,如果需要其他代碼,請告訴我。

更改呼叫splitsplit(b'\\n') 如果要拆分字節字符串(這是check_output返回的內容),則需要字節文字。 b前綴使其成為字節字符串而不是字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM