Как выяснилось, предыдущая версия наотрез оказалась работать в винде. Слеши там, видите ли, "не той системы". А эта, по идее, должна работать везде.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import bge
import os
def searchFile(startPath, nameFile):
# результат поиска, по умолчанию "ничего не нашли", он же флаг
result = False
# список всех путей к папкам, в которых будем искать
listPaths = [startPath]
# просматриваем доступные пути к директориям
for path in listPaths:
#print('dir -- ', path) # debug
# просматриваем содержимое текущей папки
for ob in os.listdir(path):
#print('ob -- ', ob, os.path.isfile(os.path.join(path, ob)), os.path.isdir(os.path.join(path, ob))) # debug
# если файл, тот что нам нужен
if ob == nameFile:
# то изменяем значение флага на путь к файлу
result = os.path.join(path, ob)
# и выходим из этого цикла
break
# если же файл не тот, что нужен, но является папкой
elif os.path.isdir(os.path.join(path, ob)):
# добавляем путь к новой папке в список всех путей для
# последующего поиска там
newPath = os.path.join(path, ob)
listPaths.append(newPath)
# если в предыдущем цикле что-то нашли, то выходим и из этого цикла.
if result != False:
break
# красиво оформляем фейл поиска
if result == False:
result = 'Извините, по вашему запросу ничего не найдено'
return result
def main():
# путь к папке, с которой мы начнем поиск
cernelPath = bge.logic.expandPath('//')
# имя искомого файла, понятно, что должно быть своё
nameFile = 'robot.blend1'
# осуществляем поиск и сохраняем результат
search = searchFile(cernelPath, nameFile)
# выводим результат поиска на экран
print(search)
return 0
# бгешный запуск, вместо if __name__ == '__main__'
cont = bge.logic.getCurrentController()
sens = cont.sensors[0]
if sens.positive:
main()
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import bge
import os
def searchFile(startPath, nameFile):
# результат поиска, по умолчанию "ничего не нашли", он же флаг
result = False
# список всех путей к папкам, в которых будем искать
listPaths = [startPath]
# просматриваем доступные пути к директориям
for path in listPaths:
#print('dir -- ', path) # debug
# просматриваем содержимое текущей папки
for ob in os.listdir(path):
#print('ob -- ', ob, os.path.isfile(os.path.join(path, ob)), os.path.isdir(os.path.join(path, ob))) # debug
# если файл, тот что нам нужен
if ob == nameFile:
# то изменяем значение флага на путь к файлу
result = os.path.join(path, ob)
# и выходим из этого цикла
break
# если же файл не тот, что нужен, но является папкой
elif os.path.isdir(os.path.join(path, ob)):
# добавляем путь к новой папке в список всех путей для
# последующего поиска там
newPath = os.path.join(path, ob)
listPaths.append(newPath)
# если в предыдущем цикле что-то нашли, то выходим и из этого цикла.
if result != False:
break
# красиво оформляем фейл поиска
if result == False:
result = 'Извините, по вашему запросу ничего не найдено'
return result
def main():
# путь к папке, с которой мы начнем поиск
cernelPath = bge.logic.expandPath('//')
# имя искомого файла, понятно, что должно быть своё
nameFile = 'robot.blend1'
# осуществляем поиск и сохраняем результат
search = searchFile(cernelPath, nameFile)
# выводим результат поиска на экран
print(search)
return 0
# бгешный запуск, вместо if __name__ == '__main__'
cont = bge.logic.getCurrentController()
sens = cont.sensors[0]
if sens.positive:
main()
Комментариев нет:
Отправить комментарий