python - os.listdir 返回带有特殊字符的奇怪文件名字符串

标签 python special-characters google-colaboratory listdir

假设我的 path 中有以下文件,该文件位于连接到 Python 3 Colab 笔记本的 Google 驱动器中:

(这里,#行代表输出)

ls = os.listdir(path)
print (ls)
# ['á.csv', 'b.csv']

一切看起来都不错,但如果我写

'á.csv' in ls
# False

但应该返回 True。但是,如果我重复最后一个代码,但不是编写“á.csv”,而是从 print (ls) 手动复制粘贴它,它会返回 True。

谢谢

ps:问题不完全在于该文件名,而是在于多个包含特殊字符(即 í、á、é、ó、ñ)的文件名

最佳答案

您可以在比较文件列表之前对它们进行规范化。

from unicodedata import normalize
ls = [normalize('NFC', f) for f in os.listdir(path)]
# compare
normalize('NFC', 'á.csv') in ls
# or just 'á.csv' in ls

关于python - os.listdir 返回带有特殊字符的奇怪文件名字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60013043/

相关文章:

python - 各个月份的列值总和

python - 是否有一些库可以促进 golang 中 JSON 的操作?

sql - 使用转义换行符和回车符取消转义字符串

apache-spark - 动态重命名 PySpark DataFrame 中的多个列

tensorflow - Google Colab - 连接到 Google Cloud Storage 几天后未创建 adc.json 文件

python - 获取当前时间之前可被 5 整除的最近时间

java - Oracle:插入 simbol '&' 时出现问题

tensorflow - 在 colab 中设置 DeepLabV3

r - 如何在 google-collaboration 上安装 rgdal 和/或上传栅格

python - 我最近更改了编译器路径以运行c++代码,但是现在我无法运行任何python代码。我该如何解决?