我正在写一个脚本,它必须在Windows和Linux用户手动修改的目录上工作.Windows用户在分配文件名时往往完全不在乎大小写.

有没有办法在Python的Linux端处理这个问题,也就是说,我能得到一个不区分大小写、类似glob的行为?

推荐答案

使用不区分大小写的正则表达式,而不是glob模式.fnmatch.translate从glob模式生成正则表达式,所以

re.compile(fnmatch.translate(pattern), re.IGNORECASE)

将glob模式的一个不区分大小写的版本作为编译后的RE.

请记住,如果文件系统由类Unix文件系统上的Linux盒托管,用户将能够在同一目录中创建文件fooFooFOO.

Linux相关问答推荐

git别名函数可以用单引号写吗?

如何告诉链接器不要在链接的共享库中查找某些符号?

使用来自 yocto build 而不是主机系统的 protoc

使用 ansible 验证 firewalld 配置

如何摆脱管道分隔字段中不需要的管道符号 - Linux

构建 python 映像时 Docker compose 问题,访问被拒绝或存储库不存在

为什么`__vfprintf_internal`(`stdio.h`中的`printfn`)强制`$rbp`在我的x86-64机器上向前跳转6313864字节?

如何拆分多个分隔符但将它们保留在方括号之间?

使用打印命令 Select 子域

Dockerfile:无法复制文件

如何判断 Ubuntu 12.04 LTS 上是否安装了多个版本的 PHP?

如何使用多个版本的 GCC

如何更改目录中所有文件中所有出现的单词

在 Ubuntu 中重启 Nginx

bashrc 在运行 bash 命令之前不会加载

*nix 系统上是否有与 COM 等效的功能?如果不是,那么 *nix 的可重用性方法是什么?

将 jiffies 转换为毫秒

如何使用 C++ 在 Linux 中获取总 CPU 使用率

bash中变量名后的2个逗号是什么意思?

Bash:在文件中的特定位置插入一行