推荐学习书目
› 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
V2EX  ›  Python

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

  •  
  •   jdhao ·
    jdhao · Jun 25, 2019 via Android · 4829 views
    This topic created in 2690 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
    loading
    Jun 25, 2019 via Android
    1
    windows 本来就不区分大小写。
    choury
    choury
    Jun 25, 2019 via Android
    2
    系统不分,它自己怎么区分?
    xuboying
    xuboying
    Jun 25, 2019
    3
    NTFS 有开关可以打开大小写区分,不过不知道 glob 适配了没
    jdhao
    jdhao
    OP
    Jun 25, 2019 via Android
    4
    @choury 系统不分,不代表 glob 可以不分,至少可以提供一个选择
    choury
    choury
    Jun 25, 2019 via Android❤️3
    5
    @jdhao 你去试着写一个试图区分大小写的 win32 应用,如果能实现再来说这个话
    choury
    choury
    Jun 25, 2019 via Android
    6
    @xuboying ntfs 区分,但是 windows 不区分,你总不能自己写裸盘吧
    jdhao
    jdhao
    OP
    Jun 25, 2019
    7
    @choury 目前没这个需求。
    deorth
    deorth
    Jun 25, 2019
    8
    你可以在 linux 下用 NTFS-3G 创建两个仅大小写不同的文件,再到 windows 下看看
    datou
    datou
    Jun 25, 2019
    9
    我以前试过装黑果把系统分区格式化成大小写敏感的 apfs 之后有些程序会报错
    hronro
    hronro
    Jun 25, 2019
    10
    @datou #9 我目前用的就是区分大小写的 APFS,感觉还行就 Steam 用不了,其他我日常使用的软件都正常。
    datou
    datou
    Jun 25, 2019
    11
    @hronro 当时我 pycharm 的右下角一直弹泡泡报错....
    feather12315
    feather12315
    Jun 25, 2019 via Android
    12
    Windows 的 NTFS 现在已经可以设置区分大小写了
    maichael
    maichael
    Jun 25, 2019
    13
    @jdhao #7 巧了,glob.glob 也没这个需求
    jdhao
    jdhao
    OP
    Jun 25, 2019
    14
    @maichael 哦,你是这个模块的开发者?
    12101111
    12101111
    Jun 25, 2019 via Android❤️1
    15
    msvc 的 cl 已经可以处理大小写敏感了(为了支持 wsl 创建的文件夹),不过目前还是用 wsl 处理 NTFS 上大小写敏感的文件比较好。
    hronro
    hronro
    Jun 25, 2019
    16
    @datou #11
    这个是 Pycharm 的问题,我用的 IDEA 也有一样的问题,但是可以修复。点开气泡它会提示你怎么操作
    reus
    reus
    Jun 25, 2019
    17
    自己水就水,别怪他人
    jdhao
    jdhao
    OP
    Jun 25, 2019 via Android
    18
    @reus 大神好,膜拜大神
    qcts33
    qcts33
    Jun 25, 2019
    19
    这取决于你从哪个角度看这个问题了。
    从 Python 跨平台的角度可能是有一些出乎意料。但是如果从 windows 平台应用的角度来看,你突然出现一个对大小写敏感的应用才是更加出乎意料的。
    所以我觉得 python 的这个行为应该说是符合预期的才对。
    des
    des
    Jun 25, 2019 via Android
    20
    yksoft1test
    yksoft1test
    Jun 25, 2019
    21
    @12101111 是 CRT 支持了吧,cl 本身应该没这个问题的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3725 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 10:09 · PVG 18:09 · LAX 02:09 · JFK 05:09
    ♥ Do have faith in what you're doing.