for file in os.listdir(...) pylint W0622

16/11/2012 - 09:55 von Thomas Guettler | Report spam
Hallo,

folgendes benutze ich oft in meinem Quelltext:

for file in os.listdir(...):
...


pylint meckert nun, dass "file" ein built-in ist und überschrieben wird.

W0622: Redefining built-in %r Used when a variable or function override a built-in.

Ich stehe nun vor der Frage: Ich ignoriere W0622, oder ich passe meinen Code an.

Wie macht ihr das?

Gruß,
Thomas

PS: Der Besuch der PyCon DE in Leizpig hat sich wirklich gelohnt. Dort habe ich
den Tipp zu flymake-python erhalten.
Mit flymake sieht man Fehler schon beim Tippen: https://github.com/akaihola/flymake-python

Thomas Guettler, http://www.thomas-guettler.de/
E-Mail: guettli (*) thomas-guettler + de
 

Lesen sie die antworten

#1 Mike Müller
16/11/2012 - 10:23 | Warnen spam
Am 16.11.12 09:55, schrieb Thomas Guettler:
Hallo,

folgendes benutze ich oft in meinem Quelltext:

for file in os.listdir(...):
...


pylint meckert nun, dass "file" ein built-in ist und überschrieben wird.

W0622: Redefining built-in %r Used when a variable or function override a
built-in.

Ich stehe nun vor der Frage: Ich ignoriere W0622, oder ich passe meinen Code an.

Wie macht ihr das?



Eine Lösung ist es einen Unterstrich anzuhàngen, also so:

for file_ in os.listdir(...):

Ich würde hier aber lieber von einem Dateinamen sprechen:

for file_name in os.listdir(...):

`file` klingt eher wie ein Dateiobjekt (geöffnete Datei), für das ich dann
wiederum gern `fobj` verwende.

Beachte auch, dass in einem Verzeichnis auch Unterverzeichnisse liegen könnten,
die man oft anders behandelt als Dateien. Für das rekursive Ablaufen von
Verzeichnisstrukturen solltest du dir `os.walk` anschauen.

Viele Grüße
Mike


Gruß,
Thomas

PS: Der Besuch der PyCon DE in Leizpig hat sich wirklich gelohnt. Dort habe ich
den Tipp zu flymake-python erhalten.
Mit flymake sieht man Fehler schon beim Tippen:
https://github.com/akaihola/flymake-python

Ähnliche fragen