我正在使用rsplit
拆分路径名
rootPath = os.path.abspath(__file__)
rootPath = (rootPath.rsplit('/', 1)[0]).rsplit('/', 1)[0]
但 Pycharm 警告,
预期类型
optional [bytes]
,取而代之的是str
在python doc
中,它声明使用sep
作为分隔符字符串。
那么如何解决这个问题?
答案 0 :(得分:7)
似乎rootPath
被视为字节对象(可能是一个小错误?)或警告是另一部分。
一般来说,PyCharm和错误基本上警告你的是参数必须是None
或bytes
。这是Optional
的含义,Optional[type]
是None
或type
,在您的情况下是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]