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

时间:2016-09-12 09:57:25

标签: python python-3.x split pycharm

我正在使用rsplit拆分路径名

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

Pycharm 警告,

  

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

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

那么如何解决这个问题?

2 个答案:

答案 0 :(得分:7)

似乎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或警告代码的另一部分。

答案 1 :(得分:0)

我来到这里时遇到了同样的问题,找到了一个略有不同的解决方案-考虑过为将来可能遇到相同问题的任何人添加它。

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