os.walk() 去掉波兰字符

6 投票
1 回答
1727 浏览
提问于 2025-04-17 03:02

我想做的是修复一些mp3文件的id3标签。大部分都能正常工作,但有些文件名带有重音符号的就不行,因为os.walk似乎把这些符号去掉了。

举个例子,我有一个文件叫01.Co Słychać.mp3,在这段代码中:

for root, dirs, files in os.walk(folder):
    print files

它显示成了['01.Co Slychac.mp3'],这就导致后面出现了'没有这样的文件或目录'的错误。

这个问题怎么解决呢?

1 个回答

7

你有没有把 folder 定义成 Unicode 字符串?这会影响 os.walk() 如何匹配它的子目录,或者说,它返回的字符串类型。

>>> for a,b,c in os.walk("."):
...  print b
...  break
...
['DLLs', 'Doc', 'include', 'Lib', 'libs', 'tcl', 'Tools']
>>> for a,b,c in os.walk(u"."):
...  print b
...  break
...
[u'DLLs', u'Doc', u'include', u'Lib', u'libs', u'tcl', u'Tools']

撰写回答