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

时间:2018-02-11 07:35:33

标签: 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

给了我这个错误:

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

任何人都可以帮我解决。

1 个答案:

答案 0 :(得分:3)

只需删除此行:directory = os.fsencode(directory_in_str)。无需对目录名进行编码。