Питон: получение случая имени файла, как сохранено в Windows?

Хотя Windows без учета регистра, он действительно сохраняет случай в именах файлов. У Питона, там какой-либо способ получить имя файла со случаем, поскольку это сохранено в файловой системе?

Например, в программе Пайтона я имею имя файла = «texas.txt», но хочу знать, что оно на самом деле сохранено «TEXAS.txt» в файловой системе, даже если это несущественно для различных операций по файлу.

15
задан Reinstate Monica 22 January 2010 в 04:37
поделиться

4 ответа

Вот самый простой способ сделать это:

>>> import win32api
>>> win32api.GetLongPathName(win32api.GetShortPathName('texas.txt')))
'TEXAS.txt'
9
ответ дан 1 December 2019 в 04:00
поделиться
>>> import os
>>> os.listdir("./")
['FiLeNaMe.txt']

Это отвечает на ваш вопрос?

1
ответ дан 1 December 2019 в 04:00
поделиться

И если вы хотите резать каталоги

import os
path=os.path.join("c:\\","path")
for r,d,f in os.walk(path):
    for file in f:
        if file.lower() == "texas.txt":
              print "Found: ",os.path.join( r , file )
1
ответ дан 1 December 2019 в 04:00
поделиться

Вы можете использовать:

import os
a = os.listdir('mydirpath')
b = [f.lower() for f in a]
try:
    i = b.index('texas.txt')
    print a[i]
except ValueError:
    print('File not found in this directory')

Это, конечно, предполагает, что ваша строка поиска «Texas.txt» в нижнем регистре. Если это не то, что вы должны сначала преобразовать его в строчные.

1
ответ дан 1 December 2019 в 04:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: