以下代码:
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
任何人都可以帮我解决。
答案 0 :(得分:3)
只需删除此行:directory = os.fsencode(directory_in_str)
。无需对目录名进行编码。