2010-05-29 10 views
11

Obecnie używam metody walk w zadaniu uni. Wszystko działa dobrze, ale miałem nadzieję, że ktoś może mi coś wyjaśnić.Metoda Pythona os.path.walk()

w poniższym przykładzie, jaki jest parametr a używany w metodzie myvisit?

>>> from os.path import walk 
>>> def myvisit(a, dir, files): 
... print dir,": %d files"%len(files) 

>>> walk('/etc', myvisit, None) 
/etc : 193 files 
/etc/default : 12 files 
/etc/cron.d : 6 files 
/etc/rc.d : 6 files 
/etc/rc.d/rc0.d : 18 files 
/etc/rc.d/rc1.d : 27 files 
/etc/rc.d/rc2.d : 42 files 
/etc/rc.d/rc3.d : 17 files 
/etc/rc.d/rcS.d : 13 files 
+12

'os.path.walk' jest przestarzała, użyj' os.walk' – SilentGhost

+0

jest taka sama dla 'os.path.exists' i' os.path.isdir'? –

Odpowiedz

9

To argument daliście chodzić, żaden w przykładzie z pytaniem

+0

ah prawo, ok. Czyżby po prostu "brakowało"? –

+0

właśnie tego wypróbowałem. Nie. :) Dzięki Krumeler. –

+3

Typowym sposobem w Pythonie, aby określić, że argument lub zmienna nie jest przedmiotem zainteresowania, jest użycie znaku podkreślenia ("_") jako nazwy argumentu. Jest to tylko konwencja, ale niektóre IDE (na przykład PyDev) uwzględnia to przy sprawdzaniu nieużywanych zmiennych. – Krumelur

24

Pierwszy argument do funkcji wywołania zwrotnego jest ostatni argument funkcji os.path.walk. Jego najbardziej oczywistym zastosowaniem jest umożliwienie zachowania stanu między kolejnymi wywołaniami funkcji pomocnika (w twoim przypadku: myvisit).

os.path.walk jest przestarzałą funkcją. Naprawdę powinieneś użyć os.walk, która nie potrzebuje ani funkcji wywołania zwrotnego, ani argumentów pomocniczych (np. a w twoim przykładzie).

for directory, dirnames, filenames in os.walk(some_path): 
    # run here your code 
Powiązane problemy