Gibt es eine Möglichkeit, ein Array zu erweitern, das Daten aus einer Datei bei jeder Iteration for
-loop und with
speichert Befehlskombination mit glob
. Derzeit habe ich so etwas wiePython: Können Sie ein Array bei jeder Iteration mit glob (oder ähnlich) erweitern, um Dateien aus einem Verzeichnis einzulesen
import glob
from myfnc import func
for filename in glob.glob('*.dta'):
with open(filename,'rb') as thefile:
fileHead, data = func(thefile)
wo func
myfnc
in einem anderen Skript definiert ist. Was dies tut, ist bei jeder Iteration im Verzeichnis, speichert die Daten von jeder Datei in fileHead
und data
(als Arrays) und löscht was auch immer in der vorherigen Iteration war. Was ich brauche, ist etwas, das jedes Array bei jedem Durchgang erweitert. Gibt es einen schönen Weg, dies zu tun? Es muss keine For-Schleife sein, mit Combo. So lese ich alle Dateien aus dem Verzeichnis ein.
Ich dachte, die Arrays vorher zu initialisieren und dann versuchen, sie zu erweitern, nachdem die with
in einem Durchgang erfolgt ist, aber es gab mir eine Art von Fehler mit dem extend
Befehl. Mit dem Fehler, würde der Code aussehen
import glob
from myfnc import func
fileHead, data = [0]*2
for filename in glob.glob('*.dta'):
with open(filename,'rb') as thefile:
fileHeadExtend, dataExtend = func(thefile)
fileHead.extend(fileHeadExtend)
data.extend(dataExtend)
Also, das Problem, dass es hat fileHead
und data
beide initialisiert, sondern als int ist. Allerdings möchte ich die Arrays nicht auf so viele Nullen initialisieren. Es sollte zunächst keine willkürlichen Werte geben. Also, das ist es, wo das Problem liegt.
die auf Ihre Frage Python hinzufügen Fehlermeldung. –
'AttributeError: 'int' Objekt hat kein Attribut 'extend'' – Lou
Jetzt müssen Sie herausfinden, welche Variable ein' int' ist. –