python - Windows 上 os.path.normcase 的反转

标签 python path filenames case-sensitive

是否有一种简单的方法可以从全小写路径获取“真实”区分大小写的路径。 就像 os.path.normcase 的反转。

例如,考虑目录:

c:\StackOverFlow

如果我有如下代码片段,如何获取d_real?

>>> import os
>>> d = os.path.normcase('C:\\StackOverFlow') # convert to lower case
>>> d
'c:\\stackoverflow'
>>> d_real = ... # should give 'C:\StackOverFlow' with the correct case

最佳答案

我不认为此解决方案简单,但您可以:

import os
d = os.path.normcase('C:\\StackOverFlow')
files = os.listdir(os.path.dirname(d))
for f in files:
  if not d.endswith(f.lower()):
    continue
  else
    real_d = os.path.join(os.path.dirname(d), f)

它可能效率不高(取决于目录中的文件数量)。它需要调整路径组件(我的解决方案实际上只纠正文件名的大小写而不关心目录名)。此外,os.walk 可能有助于向下遍历树。

关于python - Windows 上 os.path.normcase 的反转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1846307/

相关文章:

python - 断言对不同模拟对象的调用序列

c# - 在 C# 中指定路径时如何返回一个级别?

windows - 我如何让 Perl 理解导航到路径中有空格的目录?

c - 摆脱文件名中不允许的字符

python - Tensorflow - 避免张量大小限制

python - 在 C 中模拟 Python `random.random()` 功能

Python 简化 HTML 表格

java - 我想在 lotus Notes 6.5 中使用 java 1.6。有没有办法做到这一点..? –

c++ - 从 C++ 中的文件名获取完整路径

Python3 列出来自特定目录的文件