2016-09-12 59 views
4

我使用rsplit分裂出一個路徑名,Pycharm預期型 '可選[字節]' 得到了 '海峽',而不是

rootPath = os.path.abspath(__file__) 
rootPath = (rootPath.rsplit('/', 1)[0]).rsplit('/', 1)[0] 

Pycharm警告,

預計類型optional [bytes] ,得到str而不是

python doc,它聲明使用sep作爲分隔符字符串

那麼如何解決這個問題呢?

回答

4

看起來好像rootPath被視爲字節對象(一個小錯誤也許?)或警告是另一部分。

一般來說,PyCharm和錯誤本質上是警告你的參數必須是Nonebytes。這就是Optional的意思,Optional[type]Nonetype這在你的情況是bytes

在一個簡單的Python REPL的消息略有不同,但主旨是一樣的:

b'hello/world'.rsplit('/') # error bytes-like object required 

相反,你需要提供一個byte分隔符:

b'hello/world'.rsplit(b'/') 
爲了得到

None它工作。

PyCharm中存在一個小錯誤,它在此處報告的錯誤代碼爲rsplit,或者警告代碼的另一部分。

相關問題