glob.glob 在 Windows 上是不管文件名大小写的,被坑了一把 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
jdhao

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

  •  
  •   jdhao
    jdhao Jun 25, 2019 via Android 4326 views
    This topic created in 2501 days ago, the information mentioned may be changed or developed.

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

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

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

    21 replies    2019-06-25 23:36:50 +08:00
    loading
        1
    loading  
       Jun 25, 2019 via Android
    windows 本来就不区分大小写。
    choury
        2
    choury  
       Jun 25, 2019 via Android
    系统不分,它自己怎么区分?
    xuboying
        3
    xuboying  
       Jun 25, 2019
    NTFS 有开关可以打开大小写区分,不过不知道 glob 适配了没
    jdhao
        4
    jdhao  
    OP
       Jun 25, 2019 via Android
    @choury 系统不分,不代表 glob 可以不分,至少可以提供一个选择
    choury
        5
    choury  
       Jun 25, 2019 via Android   3
    @jdhao 你去试着写一个试图区分大小写的 win32 应用,如果能实现再来说这个话
    choury
        6
    choury  
       Jun 25, 2019 via Android
    @xuboying ntfs 区分,但是 windows 不区分,你总不能自己写裸盘吧
    jdhao
        7
    jdhao  
    OP
       Jun 25, 2019
    @choury 目前没这个需求。
    deorth
        8
    deorth  
       Jun 25, 2019
    你可以在 linux 下用 NTFS-3G 创建两个仅大小写不同的文件,再到 windows 下看看
    datou
        9
    datou  
       Jun 25, 2019
    我以前试过装黑果把系统分区格式化成大小写敏感的 apfs 之后有些程序会报错
    hronro
        10
    hronro  
       Jun 25, 2019
    @datou #9 我目前用的就是区分大小写的 APFS,感觉还行就 Steam 用不了,其他我日常使用的软件都正常。
    datou
        11
    datou  
       Jun 25, 2019
    @hronro 当时我 pycharm 的右下角一直弹泡泡报错....
    feather12315
        12
    feather12315  
       Jun 25, 2019 via Android
    Windows 的 NTFS 现在已经可以设置区分大小写了
    maichael
        13
    maichael  
       Jun 25, 2019
    @jdhao #7 巧了,glob.glob 也没这个需求
    jdhao
        14
    jdhao  
    OP
       Jun 25, 2019
    @maichael 哦,你是这个模块的开发者?
    12101111
        15
    12101111  
       Jun 25, 2019 via Android   1
    msvc 的 cl 已经可以处理大小写敏感了(为了支持 wsl 创建的文件夹),不过目前还是用 wsl 处理 NTFS 上大小写敏感的文件比较好。
    hronro
        16
    hronro  
       Jun 25, 2019
    @datou #11
    这个是 Pycharm 的问题,我用的 IDEA 也有一样的问题,但是可以修复。点开气泡它会提示你怎么操作
    reus
        17
    reus  
       Jun 25, 2019
    自己水就水,别怪他人
    jdhao
        18
    jdhao  
    OP
       Jun 25, 2019 via Android
    @reus 大神好,膜拜大神
    qcts33
        19
    qcts33  
       Jun 25, 2019
    这取决于你从哪个角度看这个问题了。
    从 Python 跨平台的角度可能是有一些出乎意料。但是如果从 windows 平台应用的角度来看,你突然出现一个对大小写敏感的应用才是更加出乎意料的。
    所以我觉得 python 的这个行为应该说是符合预期的才对。
    des
        20
    des  
       Jun 25, 2019 via Android
    yksoft1test
        21
    yksoft1test  
       Jun 25, 2019
    @12101111 是 CRT 支持了吧,cl 本身应该没这个问题的。
    About     Help     Advertise     Blog     API     FAQ     Solana     1130 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 51ms UTC 23:55 PVG 07:55 LAX 16:55 JFK 19:55
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86