• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Opis kodu Python

0 głosów
119 wizyt
pytanie zadane 16 stycznia w Python, Django przez Carttea5 Nowicjusz (120 p.)
import os

def foldery(sciezka):
    for root, dirs, files in os.walk(sciezka):
        poziom = root.replace(sciezka, '').count(os.sep)
        odstep = ' ' * 4 * (poziom)
        print('{}{}/'.format(odstep, os.path.basename(root)))
        odstep2 = ' ' * 4 * (poziom + 1)
        for f in files:
            print('{}{}'.format(odstep2, f))

Mógłby ktoś wytłumaczyć jakie zadanie ma czwarta linijka w tym kodzie oraz co oznacza f w 9. linii. 

2 odpowiedzi

+1 głos
odpowiedź 16 stycznia przez shead VIP (123,630 p.)

Mógłby ktoś wytłumaczyć jakie zadanie ma czwarta linijka w tym kodzie

os.walk() zwraca kolekcję (listę, tablicę jak chcesz to nazwać) obiektów o następującym formacie: (<ścieżka do folderu>, <lista folderów>, <lista plików>), ten for to nic innego jak przypisanie do poszczególnych zmiennych elementów listy i przejście po wszystkich takich kolekcjach danych.

co oznacza f w 9. linii. 

"Dla każdego w liście files...", f to pojedynczy element z listy

https://wiki.python.org/moin/ForLoop

Polecam poduczyć się podstaw Pythona ;)

0 głosów
odpowiedź 16 stycznia przez Benek Nałogowiec (29,760 p.)

Mógłby ktoś wytłumaczyć jakie zadanie ma czwarta linijka w tym kodzie (...)

 Wyrażenie:

os.walk(sciezka)

tworzy obiekt, który ma 3 składniki:

  1. ścieżkę do katalogu wskazywanego przez zmienną napisową sciezka
  2. listę zawierającą katalogi zlokalizowane pod podaną wyżej ścieżką
  3. listę zawierającą pliki zlokalizowane pod podaną wyżej ścieżką

(...) co oznacza f w 9. linii.

files to lista, która może zawierać dowolną ilość elementów. Wyrażenie:

for f in files:
 ...

oznacza: weź pierwszy element z listy files i podstaw go do f. W miejscu ... wykonaj dowolne operacje. Gdy skończysz, weź drugi element z listy files i podstaw go do zmiennej f. Znów wykonaj dowolne operacje. I tak dalej aż f przejdzie wszystkie elementy listy files.

Podobne pytania

0 głosów
1 odpowiedź 83 wizyt
0 głosów
2 odpowiedzi 126 wizyt
pytanie zadane 23 października 2015 w Python, Django przez KULTI Obywatel (1,400 p.)
0 głosów
1 odpowiedź 53 wizyt
pytanie zadane 13 kwietnia w Python, Django przez Hacper Gaduła (3,410 p.)
...