是否有一种简单的方法可以从全小写路径获取“真实”区分大小写的路径。 就像 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/