os.Pfad.isdir() und os.Pfad.isfile() beide False zurückgeben, im Skript aber True zurückgeben, (wie Sie sollten) in der Python-Konsole

Ich versuche, die Verwendung von for und os - Modul zur Ausführung durch eine Liste von Dateinamen, ändern Sie die itemtype variable entweder "DATEI" oder "VERZEICHNIS" entsprechend, und drucken dieses aus. Wenn ich versuche, dies in einem Python-Konsole, diese funktioniert einwandfrei. Allerdings, wenn die fast identische Stück code, das ausgeführt wird in meinem script sowohl die isdir() und isfile() Funktionen false zurück.

Ich versuche dies in der Konsole:

>>> import os
>>> files = os.listdir()
>>> print(files)
['namebydate.py', 'order.bat', 'storebydate.py', 'test', '__pycache__']
>>> for i in files:
...  itemtype=''
...  if os.path.isdir(i):
...   itemtype='DIRECTORY'
...  elif os.path.isfile(i):
...   itemtype='FILE'
...
...  print('{itemtype}'.format(itemtype=itemtype))
...
FILE
FILE
FILE
DIRECTORY
DIRECTORY
>>>

Und es funktioniert bestens. Aber wenn mein script läuft und geht zu seinem äquivalent von, dass:

for i in files:
    itemtype = ''
    if os.path.isdir(i):
        itemtype = 'DIRECTORY'
    elif os.path.isfile(i):
        itemtype = 'FILE'
    print('({current}/{total}) [{itemtype}] {name}'.format(
        current=str(files.index(i)+1),
        total=len(files),
        itemtype=itemtype,
        name=i))

Die Funktionen false zurück, verlassen des itemtype - Wert als eine leere Zeichenfolge ist, und der Ausgang wird:

Listing...
(1/4) [] testdir
(2/4) [] testdoc1.txt
(3/4) [] testdoc2.txt
(4/4) [] testdoc3.txt

In diesem Fall, das erwartete Ergebnis sollte sein:

Listing...
(1/4) [DIRECTORY] testdir
(2/4) [FILE] testdoc1.txt
(3/4) [FILE] testdoc2.txt
(4/4) [FILE] testdoc3.txt