小编Arj*_*eek的帖子

使用 Python pathlib 处理非 UTF-8 Posix 文件名?

我正在尝试使用已成为 Python 3.4+ 标准库一部分的 pathlib 模块来查找和操作文件路径。虽然它是对 os.path 样式函数的改进,能够以面向对象的方式处理路径,但我在处理 Posix 文件系统上的一些更奇特的文件名时遇到了麻烦;特别是名称包含无法解码为 UTF-8 的字节的文件:

>>> pathlib.PosixPath(b'\xe9')

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.5/pathlib.py", line 969, in __new__
    self = cls._from_parts(args, init=False)
  File "/usr/lib/python3.5/pathlib.py", line 651, in _from_parts
    drv, root, parts = self._parse_args(args)
  File "/usr/lib/python3.5/pathlib.py", line 643, in _parse_args
    % type(a))
TypeError: argument should be a path or str object, not <class 'bytes'>

>>> b'\xe9'.decode()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeDecodeError: …
Run Code Online (Sandbox Code Playgroud)

python posix utf-8 python-3.x pathlib

5
推荐指数
1
解决办法
2236
查看次数

标签 统计

pathlib ×1

posix ×1

python ×1

python-3.x ×1

utf-8 ×1