Найти - Пользователи
Полная версия: Краткое и полное имя файла
Начало » Python для новичков » Краткое и полное имя файла
1
fabucusake123
Есть программа, которая из подключаемого модуля получает имя файла. (Этот модуль нужен для того, чтобы выводить имена файлов, которые находятся на флешке на маленький текстовый экранчик, поэтому нужна краткая форма имени файла).
После этого нужно получить полное имя этого файла, в виде “/media/TRANSCEND/mod/file.gcode”. И передать полное имя программе для дальнейшей работы с этим файлом.
Программа и модуль для работы с дисплеем довольно крупные, поэтому выкладываю только ключевые моменты.
Модуль:
global nfile
nfile=images[i]
nfile=str(nfile)
print nfile
fullname=os.path.join('/media/', images[i])  
fullname =str(fullname)
print fullname  
return fullname

Команда print nfile выдает “file.gcode” (правильно), команда print fullname выдает “/media/file.gcode” (неправильно, нужно “/media/TRANSCEND/mod/file.gcode). То есть почему то опускаются промежуточные папки. Что с этим сделать?

Возможно, я изначально пошел по неправильному пути, нужно было сделать наоборот - на стадии сканировании флешки получать массив с полными именами файлов, а потом вызывать из массива отдельные элементы и от них откусывать только краткое имя? Если да, то как это можно сделать?
В Пайтоне есть функции для получения из полного имени файла его краткой формы? Пусть даже без расширения файла.
doza_and
os.path.split
fabucusake123
Решил проблему так: все файлы во всех папках получаю с помощью os.walk.
Их полные имена получаю с помощью os.path.join и пишу это дело в массив.
Как то так:
>>> path_f = []
>>> for d, dirs, files in os.walk('c:/mydir'):
	for f in files:
		path = os.path.join(d,f) # формирование адреса
		path_f.append(path) # добавление адреса в список
Чтобы вывести на текстовый экран только имя файла, откусываю из элементов массива имена с помощью os.path.basename.
В программу передаю отдельные элементы массива в полном виде и она их спокойно съедает. Все работает как надо. Спасибо, что натолкнули на мысль.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB