使用os.path.join()运行脚本时出现TypeError

时间:2019-11-12 18:52:31

标签: python python-3.x windows

我正在运行的脚本中有以下几行:

api_xml = os.path.join(opts.out, os.path.basename(
    opts.api_raw).replace('.raw', '.xml'))

使用Python 3.7运行时,出现错误:

Traceback (most recent call last):
  File "generate_code.py", line 32, in <module>
    opts.api_raw).replace('.raw', '.xml'))
  File "/usr/lib/python3.7/posixpath.py", line 146, in basename
    p = os.fspath(p)
TypeError: expected str, bytes or os.PathLike object, not NoneType

在我看来,这就像一个简单的联接,然后替换,不确定为什么会失败。

1 个答案:

答案 0 :(得分:2)

TypeError: expected str, bytes or os.PathLike object, not NoneType

表示您将None传递给了需要路径的函数。

在尝试构建api_xml之前,请尝试添加以下行:

assert opts.out is not None
assert opts.api_raw is not None