Datei mit unbekannten Dateinamen kopieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
jusa4904
User
Beiträge: 3
Registriert: Mittwoch 10. März 2010, 14:50

Hallo,
Ich beschäftige mich seit kurzem mit phyton.
Ich möchte gerne mit dem shutil.copy befehl eine Datei aus einem Ordner in einen anderen
Ordner kopieren ,allerdings ist der Dateinamen nicht bekannt.Wie läst sich das bewerkstelligen?

Wenn der Dateiname bekannt ist funktioniert es.
shutil.copy2(E:/projekt_python/Testordner/test.jpg,E:/projekt_python/Testordner/pfad2)

oder auch so

pfad1 ='E:/projekt_python/Testordner/pfad1'
pfad2 ='E:/projekt_python/Testordner/pfad2'
datei ='/test.jpg'

shutil.copy2(pfad1+datei,pfad2)

Sorry im falle das ich die Lösung in irgend einer Form bei meiner Recherche übersehen habe!
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Nein man kann nichts ausfuehren lassen, das man nicht kennt, aber ich glaube du meinst etwas anderes.

Erzaehl mal was du vorhast und vorallen, was konkret scheitert.

Falls du meinst, dass du auf Variablen operierst, dann funktioniert es wie in deinem 2. Beispiel, aber du solltest dir unbedingt mal `os.path.join` und generell das `os.path` Modul anschaun.
jusa4904
User
Beiträge: 3
Registriert: Mittwoch 10. März 2010, 14:50

Hallo,
Erstmal Danke für die schnelle Antwort.
ich möchte mir eine Anwendung schreiben mit dem meine Digifotos automatisch archiviert werden.
Ich kopiere mein Bilder von meiner Digicam in eine festgelegtes Verzeichnis.Meine Anwendung soll
nun die Datein in die zutreffenden Verzeichnis kopieren .Nach dem Kopiervorgang soll die Anwendung
anhand der Dateigröße jede einzelnen Datei, mit der kopierten Datei verglichen werden.Sind die Dateien
identisch wird die Orginal Datei gelöscht.

Angedacht habe ich noch ,wenn das oben genannte so weit funktioniert ,die Metadateien der vorhandenen
jpg Dateien auszulesen ("aufgenommen am" und "Kammeramodel")und aus den erhalten Informationen Ordner zu
bilden in denen die jeweilge Dateien dann verschoben werden.(habe noch keinen Ahnung wie ich das machen soll,
da mach ich mir dann gedanken wenn der obere Teil so weeit funktioniert)


Mein Proplem ist das die Anwendung natürlich nicht weiss wie die erstellten Dateien meiner Digicam heissen
und somit nicht so einfach kopieren bzw löschen usw kann .

So wie ich deine Antwort verstanden habe ,muss ich erst mal den Dateinamen ermitteln
um dann die Datei kopieren zu können bzw die Dateien die im Orginalordner vorhanden sind .

Ich hoffe das war verständlich ,ich bin ein wenig in eile :)
Ist das soweit richtig?
Benutzeravatar
DaMutz
User
Beiträge: 202
Registriert: Freitag 31. Oktober 2008, 17:25

ich glaube du willst ein Verzeichnis auslesen und dann alle Dateigrössen bestimmen und vergleichen. Ob diese Methode Sinnvoll ist mag ich zu bezweifeln (Grösse, Name und Aufnahmedatum wäre evtl sinnvoller).

Ein Verzeichnis kannst du auf verschieden Arten auslesen:

Code: Alles auswählen

for file in os.listdir(r'C:\Users\a\b\img'):
	print file
oder mit os.walk() oder mit glob
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Hihi, der Highlighter bzw Parser erkennt Raw-Strings nicht...
Benutzeravatar
noisefloor
User
Beiträge: 3854
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Angedacht habe ich noch ,wenn das oben genannte so weit funktioniert ,die Metadateien der vorhandenen
jpg Dateien auszulesen
Wenn du dazu eine Lösung hast / findest kannst du hier mal posten. Das habe ich auch mal probiert und nicht geschafft.

Gruß, noisefloor
jusa4904
User
Beiträge: 3
Registriert: Mittwoch 10. März 2010, 14:50

Morgen,
Soweit ist mein Proplem jetzt gelöst,funktioniert soweit.Ich werde mich jetzt mal
mit den Metadaten auseinander setzten,hab da auch schon was gefunden.

http://pypi.python.org/pypi/IPTCInfo/1.9.5-1

Ich denke damit könnte es funktioniere. :lol:
Antworten