for name in dirs:
...
     dirs.remove(name);

nemal by si editovat objekt, ktory pouzivas v cykle for, hlavne ak sa jedna o 
obycajne pole (co zrejme ano).



______________________________________________________________
> Od: "Filip Bartmann" > Komu: python@py.cz
> Dátum: 01.06.2011 17:21
> Predmet: [python] Divné chování os.walk
>
V programu mám tento kód:
---------------------------------------------------------------------------
def list_dir(self,dir):
               for root,dirs,files in os.walk(dir):
                       print dirs;
                       for name in dirs:
                               dirname=os.path.join(root,name);
                               if self.exclude_dir(dirname):
                                       dirs.remove(name);
continue;
                               print name;
                               self.create_context(dirname,True);
                       for file in files:
                               filename=os.path.join(root,file);
                               self.create_context(filename,False);
       
       def exclude_dir(self,dir):
               for e in self.exclude:
                       e=re.sub("/$","",e);
                       if re.search("^"+e,dir):
                               return True;
               return False;

--------------------------------------------------------------------------

Problém mi ale dělá podmínka exclude_dir, ona jaky by nevynechávala
jenom zadaný adresář, ale mimo to i jeden navíc.

V dirs mám např(print dirs v kódu): ['usr', 'hosts', 'lib', 'selinux',
'etc', 'lib64', 'var', 'dev', 'bin', 'proc'] a na vynechání mám určene
hosts. selinux a var, jenomže ono mi to projde jenom adresáře(print
name v kódu):
usr
lib64
bin

Tedy když chci vynechat třeba selinux, tak mi to vynechá i etc, ale
zajímavé je, že podadresáře toho v tomto případě etc to vezme, ale v té
samotné úrovni to přeskakuje jakoby oba dva adresáře.

Předem děkuji za odpověď.

Filip Bartmann
_______________________________________________
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

_______________________________________________
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem