Python-TypeError:无法在路径组件中混合字符串和字节

Sup*_*ero 3 python

如下代码:

import os

directory_in_str = 'C:\\Work\\Test\\'
directory = os.fsencode(directory_in_str)

for file in os.listdir(directory):
    filename = os.fsdecode(file)
    if filename.lower().endswith(".xml"):
        with open(os.path.join(directory, filename), 'r') as handle:
            for line in handle:
                print(line)
    else:
        continue
Run Code Online (Sandbox Code Playgroud)

给我这个错误:

Traceback (most recent call last):
  File "c:\Work\balance_search2.py", line 9, in <module>
    with open(os.path.join(directory, filename), 'r') as handle:
  File "C:\ProgramData\Anaconda3\lib\ntpath.py", line 114, in join
    genericpath._check_arg_types('join', path, *paths)
  File "C:\ProgramData\Anaconda3\lib\genericpath.py", line 151, in _check_arg_types
    raise TypeError("Can't mix strings and bytes in path components") from None
TypeError: Can't mix strings and bytes in path components
Run Code Online (Sandbox Code Playgroud)

谁能帮我修复它。

DYZ*_*DYZ 5

只需删除以下行:directory = os.fsencode(directory_in_str)。无需编码目录名称。