glob.glob 在 Windows 上是不管文件名大小写的,被坑了一把

2019-06-25 12:02:49 +08:00
 jdhao

如题,本来希望使用大写后缀名和小写后缀名分别找出不同的文件,结果找出的结果都是一样的,发现原来 glob.glob 在非 POSIX 系统不区分大小写,略坑,也没有提示。。

至少应该给用户提示一下,或者来一个是否 ignore case 的选项。

完整记录在这里: https://jdhao.github.io/2019/06/24/python_glob_case_sensitivity/

3811 次点击
所在节点    Python
21 条回复
loading
2019-06-25 12:11:36 +08:00
windows 本来就不区分大小写。
choury
2019-06-25 12:18:57 +08:00
系统不分,它自己怎么区分?
xuboying
2019-06-25 12:23:11 +08:00
NTFS 有开关可以打开大小写区分,不过不知道 glob 适配了没
jdhao
2019-06-25 12:32:51 +08:00
@choury 系统不分,不代表 glob 可以不分,至少可以提供一个选择
choury
2019-06-25 12:44:50 +08:00
@jdhao 你去试着写一个试图区分大小写的 win32 应用,如果能实现再来说这个话
choury
2019-06-25 12:46:06 +08:00
@xuboying ntfs 区分,但是 windows 不区分,你总不能自己写裸盘吧
jdhao
2019-06-25 13:05:12 +08:00
@choury 目前没这个需求。
deorth
2019-06-25 13:17:35 +08:00
你可以在 linux 下用 NTFS-3G 创建两个仅大小写不同的文件,再到 windows 下看看
datou
2019-06-25 15:09:23 +08:00
我以前试过装黑果把系统分区格式化成大小写敏感的 apfs 之后有些程序会报错
hronro
2019-06-25 16:09:31 +08:00
@datou #9 我目前用的就是区分大小写的 APFS,感觉还行就 Steam 用不了,其他我日常使用的软件都正常。
datou
2019-06-25 16:20:05 +08:00
@hronro 当时我 pycharm 的右下角一直弹泡泡报错....
feather12315
2019-06-25 16:27:36 +08:00
Windows 的 NTFS 现在已经可以设置区分大小写了
maichael
2019-06-25 16:36:36 +08:00
@jdhao #7 巧了,glob.glob 也没这个需求
jdhao
2019-06-25 16:39:43 +08:00
@maichael 哦,你是这个模块的开发者?
12101111
2019-06-25 16:54:32 +08:00
msvc 的 cl 已经可以处理大小写敏感了(为了支持 wsl 创建的文件夹),不过目前还是用 wsl 处理 NTFS 上大小写敏感的文件比较好。
hronro
2019-06-25 20:34:37 +08:00
@datou #11
这个是 Pycharm 的问题,我用的 IDEA 也有一样的问题,但是可以修复。点开气泡它会提示你怎么操作
reus
2019-06-25 20:41:04 +08:00
自己水就水,别怪他人
jdhao
2019-06-25 21:25:15 +08:00
@reus 大神好,膜拜大神
qcts33
2019-06-25 21:57:28 +08:00
这取决于你从哪个角度看这个问题了。
从 Python 跨平台的角度可能是有一些出乎意料。但是如果从 windows 平台应用的角度来看,你突然出现一个对大小写敏感的应用才是更加出乎意料的。
所以我觉得 python 的这个行为应该说是符合预期的才对。
des
2019-06-25 22:16:12 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/577215

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX