我正在尝试使用 Python 2.7 将一堆文件名中的德语变音符号替换为其他字符。我正在使用以下代码获取名称中包含变音符号的所有文件的列表:
# -*- coding: utf-8 -*-
import os
def GetFilepaths_umlaut(directory):
file_paths = []
umlauts = ["Ä", "Ü", "Ö", "ä", "ö", "ü"]
for root, directories, files in os.walk(directory):
for filename in files:
filepath = os.path.join(root, filename)
if any(umlaut in filepath for umlaut in filepath):
file_paths.append(filepath)
print file_paths
return file_paths
GetFilepaths_umlaut(r'C:\Scripts\Replace Characters\Umlauts')
但是当列表被打印到控制台时,它并没有打印变音符号(见截图)。我试过使用 encode() 但我得到了第二个屏幕截图中显示的错误。我究竟做错了什么?非常感谢任何反馈!
最佳答案
print file_paths
正在打印列表,而不是字符串。如何显示输出取决于 list
对象的 str()
和/或 unicode()
方法。在这种情况下是使用转义字符串打印列表的元素:
>>> s = u'a\xe4a'
>>> s
u'a\xe4a'
>>> print s
aäa
>>> [s]
[u'a\xe4a']
>>> print [s]
[u'a\xe4a']
要打印实际的字符串:
for s in file_paths:
print s
关于Python 2.7、变音符号、UTF-8 和列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33231938/