Pycharm期望类型'optional [bytes]'改为'str'

dai*_*yue 8 python split pycharm python-3.x

rsplit用来分割路径名,

rootPath = os.path.abspath(__file__)
rootPath = (rootPath.rsplit('/', 1)[0]).rsplit('/', 1)[0]
Run Code Online (Sandbox Code Playgroud)

但是Pycharm警告说,

预期的类型optional [bytes],str取而代之

python doc,它声明使用sep作为分隔符字符串.

那么如何解决这个问题呢?

Jim*_*ard 7

它似乎rootPath被视为一个字节对象(可能是一个小错误?)或警告是另一部分.

一般来说,PyCharm和错误基本上警告你的是参数必须是Nonebytes.这就是Optional意味着,Optional[type]要么Nonetype而你的情况是bytes.

在一个简单的Python REPL中,消息略有不同,但要点是相同的:

b'hello/world'.rsplit('/') # error bytes-like object required
Run Code Online (Sandbox Code Playgroud)

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

b'hello/world'.rsplit(b'/') 
Run Code Online (Sandbox Code Playgroud)

或者None为了让它发挥作用.

在PyCharm中有一个小错误,它rsplit在这里报告不正确,或警告是代码的另一部分.