Python 2.7、变音符号、UTF-8 和列表

标签 python list utf-8

我正在尝试使用 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() 但我得到了第二个屏幕截图中显示的错误。我究竟做错了什么?非常感谢任何反馈!

enter image description here

在文件路径上使用 encode(): enter image description here

最佳答案

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/

相关文章:

python - 是否可以通过Python获取页面排名等信息?

python - 将计算值缓存为 TensorFlow 中的常量

python - 在 tensorflow 中训练后如何使用模型(保存/加载图表)

python - 要索引的 id 的交叉引用列表

php - 使用 imagettftext() 时如何处理字体文件不支持的字符?

java - Resttemplate 的 utf-8 编码 url 参数

python - 如何在一个表达式中合并两个字典(合并字典)?

python - 将嵌套的字典列表转换为 pandas DataFrame

c - C中的列表维护问题

html - wkhtmltopdf UTF-8编码笑脸问题