Найти - Пользователи
Полная версия: Помогите записать цикл
Начало » Python для новичков » Помогите записать цикл
1 2
Suliman
Хочу написата что-то вроде:
	for root, dirs, files in os.walk(rasterfolder):
		print root
		print join(root, file) for file in files
не могу разобраться со строкой
print join(root, file) for file in files
как цикл for записать, чтобы он file подставлял куда надо?
vrabey
Suliman
может так?
for root, dirs, files in os.walk(rasterfolder):
	for file in files:
	    print os.path.join(root, file)
Suliman
Да спасибо, а как создать список и поместить все прочитанный файлы в список?
listofimages.append(file) ?
переменную listofimages где объвлять?
=========================
Пока придумал так:
	for root, dirs, files in os.walk(rasterfolder):
		for file in files:
			listofimages = [file]
			for image in listofimages:
				print image	
Это нормальный вариант?
vrabey
for root, dirs, files in os.walk(rasterfolder):
    pass
    
print files

files - это и есть список файлов
или полные пути добавить в список?
или полные уже изменённые пути добавить в список?
или …
задача не очень ясна
Suliman
Ситуация такая: в текущем кода при проходе по каждой директории создается и выводится новый список:
['101_018696_0_0_01_bsq.img', '101_018696_0_0_02_bsq.img', '101_018696_0_0_03_bsq.img']
['234321786.txt', '468312234.txt']
[] <-- пустая директория
[] <-- пустая директория

Однако мне нужно получить список файлов их всех директорий. Суммарно. Общий массив файлов из всех директорий. Как релизовать?

vrabey
Suliman
Однако мне нужно получить список файлов их всех директорий
list_path = []
for root, dirs, files in os.walk(rasterfolder):
    for file in files:
        full_path = os.path.join(root, file)
        list_path.append(full_path)
print list_path

Марк Лутц - Программирование на Python, 4-е издание, I том, 2011 - тут есть глава про работу с файлами и каталогами
s0rg
import os
from functools import partial
list_path = []
for root, _, files in os.walk(rasterfolder):
    full_path = partial(os.path.join, root)
    list_path.extend(map(full_path, files))
vrabey
s0rg
for root, _, files in os.walk(rasterfolder):
а можно объяснить зачем использовать underscore и при каких обстоятельствах его вообще можно использовать
или где почитать?

уже почитал
…просто имя переменной которая фактически не используется
Alen
vrabey
а можно объяснить зачем использовать underscore и при каких обстоятельствах его вообще можно использовать
или где почитать?

уже почитал
…просто имя переменной которая фактически не используется

В большинстве случаев лучше пользоваться срезами. Например для данного случая:
for root, files in os.walk(raster folder)[::2]:
     ...
vrabey
Alen
Например для данного случая
import os
rasterfolder = "/home/serg/a"
obj = os.walk(rasterfolder)[::2]


obj = os.walk(rasterfolder)
TypeError: ‘generator’ object has no attribute ‘__getitem__’

но идею я понял спасибо
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