Ich muss Bilder aus mehreren Verzeichnissen in eins verschieben und Metadaten für die Dateien vor und nach dem Verschieben erfassen.Verwenden von Python class.instance nach der Erstellung
In jedem Verzeichnis:
den Index der JPG-Bilder aus indexfile.csv lesen, einschließlich Metadaten für jedes Bild
Laden Sie die entsprechende Bilddatei Laufwerk Google, mit Metadaten
Fügen Sie einen Eintrag zu uberindex.csv hinzu, der die Metadaten von indexdatei.csv und die Datei-URL von google drive nach dem Upload enthält
Mein Plan war, eine Instanz der Klasse ybpic() - def unten zu erstellen - für jede Zeile von indexfile.csv und verwenden Sie diese Instanz, um die tatsächlich zu verschiebende Datei zu identifizieren (es ist Referenz in der Indexdatei) Metadaten aus der Datei indexfile.csv, dann aktualisieren Sie diese ybpic.instance mit den Ergebnissen des Google Drive-Uploads (die anderen Metadaten), bevor Sie schließlich alle Instanzen auf die Datei ueberindex.csv schreiben.
Ich weiß, ich werde mich selbst treten, wenn die Antwort kommt (real noob).
Ich csv.reader die indexfile.csv in eine ybpic.instance, aber ich bin nicht in der Lage, beziehen sich auf jede Instanz einzeln zu verwenden oder aktualisieren Sie die Instanz später. Ich kann nur die Zeilen von indexfile.csv an indexlist [] anhängen, und ich bin in der Lage, die aktualisierte Liste zurück an den Aufrufer, aber ich kenne keinen guten Weg, um diese Liste Zeile für das entsprechende Bild zu aktualisieren Datei, später mit den neuen Metadaten.
Hier ist die ybpic def
class ybpic():
def __init__(self,FileID, PHOTO, Source, Vintage, Students,Folder,Log):
self.GOBJ=" "
self.PicID=" "
self.FileID=FileID
self.PHOTO=PHOTO
self.Source=Source
self.Students=Students
self.Vintage=Vintage
self.MultipleStudents=" "
self.CurrentTeacher=" "
self.Folder=Folder ## This may be either the local folder or the drive folder attr
self.Room=" "
self.Log=Log ## The source csvfile from which the FileID came
Hier ist die Funktion die Instanz und Liste bevölkern. Die indexfile.csv ist vergangen wie PHOTOLOG und CWD ist nur das Arbeitsverzeichnis:
def ReadIndex(photolog, cwd, indexlist) :
""" Read the CSV log file into an instance of YBPic. """
with open(photolog,'r') as indexin :
readout = csv.reader(indexin)
for row in readout:
indexrow=ybpic(row[0],row[1],row[2],row[3],row[4],cwd,photolog)
indexlist.append(row) ### THIS WORKS TO APPEND TO THE LIST
### THAT WAS PASSED TO ReadIndex
return(indexlist)
Jedwedes Hilfe wird sehr geschätzt.
Nicht direkt verwandt, aber schauen Sie sich 'glob' an, speziell' glob.glob' (um eine Datei mit Platzhaltern zu erhalten) und 'shuthil' um die Dateien zu kopieren. Beide sind Teil der integrierten Bibliotheken. – Benjamin