Проблема: у меня есть каталог из более чем 7000 файлов (иногда больше, иногда меньше.) Ни один из этих файлов не имеет расширения файла. Каждый файл имеет неизвестную кодировку (скорее всего, двоичную), но я могу прочитать его как отдельный файл с базовым кодом c, ЕСЛИ я добавляю расширение к файлу. Так как он не закодирован в ANSI или UTF-8, функции Replace и Strip не работают для пробелов. Этот модуль теперь работает для отдельных файлов. (Спасибо AKX)
КОД:
# OPEN FILES
import re
f = open('berlin_floors_metal_catwalk1.txt','r')
filecontent = f.read()
# ---SPECULAR---
# FIND SPECULAR NAME
identifiers = re.findall("([~_a-z0-9]{3,})", filecontent, flags=re.I)
specfname = identifiers[identifiers.index('envMapParms') - 1]
specular = specfname + '.png'
#---- THE FINAL VARIABLE
print(specular)
# --------------
# ---NORMAL---
# FIND NORMAL NAME
identifiers = re.findall("([~_a-z0-9]{3,})", filecontent, flags=re.I)
normalfname = identifiers[identifiers.index('specularMap') - 1]
normal = normalfname + '.png'
#---- THE FINAL VARIABLE
print(normal)
# --------------
# ---DIFFUSE COLORMAP---
# FIND COLORMAP NAME
identifiers = re.findall("([~_a-z0-9]{3,})", filecontent, flags=re.I)
colorfname = identifiers[identifiers.index('colorMap') - 1]
colormap = colorfname + '.png'
#---- THE FINAL VARIABLE
print(colormap)
# --------------
f.close()
ВХОД:
² Ï<br>
@ Ð p
@ d î Ï ÷ , S ÍÌL?ÍÌL@ ˆÀ ?_ €? €? €? €?i €? €?l_sm_t0c0n0s0_sco berlin_floors_metal_catwalk1 berlin_floors_metal_catwalk1_c colorMap normalMap berlin_floors_metal_catwalk1_n specularMap ~berlin_floors_metal_catwalk1~f0baafa8 envMapParms colorTint dynamicFoliageSunDiffuseMinMax
ВЫХОД:
~berlin_floors_metal_catwalk1~f0baafa8.png
berlin_floors_metal_catwalk1_n.png
berlin_floors_metal_catwalk1_c.png