Der Britta Baumgart sollte auf jeden Fall auch den Dateinamen des Python-Skripts mit angeben. Ansonsten weiß Python nämlich nicht, was es mit der CSV-Datei tun soll.xXSkyWalkerXx1 hat geschrieben: Samstag 30. November 2019, 22:12 Ich glaube er sollte sich erstenmal über die Grundlagen von Python, sowie über das Modul "requests" und, von jackblack bereits erwähnt, das "csv" Modul informieren.
Bilder einer Liste mit URL automatisch downloaden
Guten Morgen....und einen schönen ersten Advent
für mich sind das halt echt, wie eingangs schon geschrieben, böhmische Dörfer......sorry
Wahrscheinlich ist es so, dass ich mich hier grad zum ersten und einzigen mal in meinem Leben mit diesem Thema befassen muss.
Ich brauche diese Technik nur für diesen konkreten, recht eiligen Fall (der Bildersicherung). Von daher kann ich mir schwer Grundlagen etc aneignen.
Leider auch niemanden hier vor Ort habe, der sich damit auskennt, wehalb ich hier gelandet bin.
Könnt Ihr es vielleicht noch einmal versuchen, mir in einfachen Worten zu erklären?
Ich habe mir python3 auf dem Mac installiert
ich habe auf dem Desktop einen Ordner (Bildersicherung) erstellt.
In diesem Ordner (Bildersicherung) befinden sich die Export-Datei (export1.csv), die .py-Datei (Tool1.py) mit dem von __deets__ korrigierten Code und ein Unterordner (Bilder)
LG Britta
für mich sind das halt echt, wie eingangs schon geschrieben, böhmische Dörfer......sorry

Wahrscheinlich ist es so, dass ich mich hier grad zum ersten und einzigen mal in meinem Leben mit diesem Thema befassen muss.
Ich brauche diese Technik nur für diesen konkreten, recht eiligen Fall (der Bildersicherung). Von daher kann ich mir schwer Grundlagen etc aneignen.
Leider auch niemanden hier vor Ort habe, der sich damit auskennt, wehalb ich hier gelandet bin.
Könnt Ihr es vielleicht noch einmal versuchen, mir in einfachen Worten zu erklären?
Ich habe mir python3 auf dem Mac installiert
ich habe auf dem Desktop einen Ordner (Bildersicherung) erstellt.
In diesem Ordner (Bildersicherung) befinden sich die Export-Datei (export1.csv), die .py-Datei (Tool1.py) mit dem von __deets__ korrigierten Code und ein Unterordner (Bilder)
LG Britta
Es sind DREI Dinge hinzuschreiben.
- python. Weil es ein Python Programm ist.
- skriptname.py , weil Python wissen muss, welchen Code es ausführen muss. ACHTUNG: skriptname.py muss DEIN Name sein.
- Dateiname.csv oder wie auch immer es bei dir heißt. Denn das Programm muss ja nun auch wissen, WELCHE Daten es verarbeiten soll.
Also unter der Annahme das deine Angaben korrekt sind, und du im Terminal in den Ordner gewechselt hast, in dem das alles bereit liegt:
Und dann wird das Ding mit einer neuen Fehlermeldung abschmieren, weil es versucht die Bilder an der falschen Stelle abzulegen. Das hat auch der ursprüngliche Experte verhauen. Dazu muss dann vorher noch
"/Bilder/"
abgeändert werden zu
"Bilder/"
ohne führenden /.
- python. Weil es ein Python Programm ist.
- skriptname.py , weil Python wissen muss, welchen Code es ausführen muss. ACHTUNG: skriptname.py muss DEIN Name sein.
- Dateiname.csv oder wie auch immer es bei dir heißt. Denn das Programm muss ja nun auch wissen, WELCHE Daten es verarbeiten soll.
Also unter der Annahme das deine Angaben korrekt sind, und du im Terminal in den Ordner gewechselt hast, in dem das alles bereit liegt:
Code: Alles auswählen
python Tool.py export1.csv
"/Bilder/"
abgeändert werden zu
"Bilder/"
ohne führenden /.
Hallo @__blackjack____blackjack__ hat geschrieben: Samstag 30. November 2019, 23:02 @gonzo900: Und das ist immer noch falsch. Das besteht aus *drei* Teilen. Dem Programm das ausgeführt werden soll (Python), der Python-Datei die von Python ausgeführt werden soll, und dem Dateinamen der CSV-Datei.
das habe ich doch probiert

Eingabe im Terminal: python3 Tool1.py /Users/brittabaumgart/Desktop/Bildersicherung/export1.csv
"python3" ist das auszuführende Programm
"Tool1.py" die von python3 auszuführende Python-Datei
"/Users/brittabaumgart/Desktop/Bildersicherung/export1.csv" ist der Pfad zur Export-Datei
Unfug. Du hast das hier oben geschrieben:
Wo bitte steht da Tool.py? Und die Fehlermeldung ist auch passend dazu, Python alleine kann dein CSV nunmal nicht lesen.
Code: Alles auswählen
Die Fehlermeldung ist:
Last login: Sat Nov 30 18:33:45 on ttys000
Brittas-iMac:~ brittabaumgart$ python3 /Users/brittabaumgart/Desktop/Bildersicherung/export1.csv
File "/Users/brittabaumgart/Desktop/Bildersicherung/export1.csv", line 1
Das war eine der vielen ausprobierten Varianten, weil ich gestern bereits ziemlich durcheinander mit allem war....__deets__ hat geschrieben: Sonntag 1. Dezember 2019, 11:52 Unfug. Du hast das hier oben geschrieben:
Wo bitte steht da Tool.py? Und die Fehlermeldung ist auch passend dazu, Python alleine kann dein CSV nunmal nicht lesen.Code: Alles auswählen
Die Fehlermeldung ist: Last login: Sat Nov 30 18:33:45 on ttys000 Brittas-iMac:~ brittabaumgart$ python3 /Users/brittabaumgart/Desktop/Bildersicherung/export1.csv File "/Users/brittabaumgart/Desktop/Bildersicherung/export1.csv", line 1

Das sieht erstmal ganz gut aus, sofern die Pfadangaben stimmen. Klappt es denn jetzt?gonzo900 hat geschrieben: Sonntag 1. Dezember 2019, 11:49 Eingabe im Terminal: python3 Tool1.py /Users/brittabaumgart/Desktop/Bildersicherung/export1.csv
"python3" ist das auszuführende Programm
"Tool1.py" die von python3 auszuführende Python-Datei
"/Users/brittabaumgart/Desktop/Bildersicherung/export1.csv" ist der Pfad zur Export-Datei
Hallo @snafusnafu hat geschrieben: Sonntag 1. Dezember 2019, 12:37Das sieht erstmal ganz gut aus, sofern die Pfadangaben stimmen. Klappt es denn jetzt?gonzo900 hat geschrieben: Sonntag 1. Dezember 2019, 11:49 Eingabe im Terminal: python3 Tool1.py /Users/brittabaumgart/Desktop/Bildersicherung/export1.csv
"python3" ist das auszuführende Programm
"Tool1.py" die von python3 auszuführende Python-Datei
"/Users/brittabaumgart/Desktop/Bildersicherung/export1.csv" ist der Pfad zur Export-Datei
leider nein :
Last login: Sun Dec 1 12:41:22 on ttys000
Brittas-iMac:~ brittabaumgart$ python3 Tool1.py /Users/brittabaumgart/Desktop/Bildersicherung/export1.csv
/Library/Frameworks/Python.framework/Versions/3.8/bin/python3: can't open file 'Tool1.py': [Errno 2] No such file or directory
Brittas-iMac:~ brittabaumgart$

Wenn du den vollen Pfad zur CSV Datei angibst, und Tool.py daneben liegt - wieso glaubst du es klappt OHNE da den vollen Pfad anzugeben? Auch der muss vollständig sein. Oder du wechselst mit ‚cd ~/Desktop/Bildersicherung‘ erstmal ins passende Verzeichnis.
Das weiß ich nicht, wie gesagt, absolut null Ahnung davon__deets__ hat geschrieben: Sonntag 1. Dezember 2019, 12:46 Wenn du den vollen Pfad zur CSV Datei angibst, und Tool.py daneben liegt - wieso glaubst du es klappt OHNE da den vollen Pfad anzugeben? Auch der muss vollständig sein. Oder du wechselst mit ‚cd ~/Desktop/Bildersicherung‘ erstmal ins passende Verzeichnis.

Ich habe es jetzt so gemacht:
python3 /Users/brittabaumgart/Desktop/Bildersicherung/Tool1.py /Users/brittabaumgart/Desktop/Bildersicherung/export1.csv
Fehlermeldung:
Last login: Sun Dec 1 12:41:39 on ttys000
Brittas-iMac:~ brittabaumgart$ python3 /Users/brittabaumgart/Desktop/Bildersicherung/Tool1.py /Users/brittabaumgart/Desktop/Bildersicherung/export1.csv
Traceback (most recent call last):
File "/Users/brittabaumgart/Desktop/Bildersicherung/Tool1.py", line 16, in <module>
value, params = cgi.parse_header(blah)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/cgi.py", line 226, in parse_header
parts = _parseparam(';' + line)
TypeError: can only concatenate str (not "NoneType") to str
Brittas-iMac:~ brittabaumgart$
So. Das hier tut, aber ich musste diverse Aenderungen machen, und es gibt einen schwierigen Zwischenschritt. Hier erstmal das Skript:
ACHTUNG: das schlaegt fehl, weil die Zertifikate von Python fehlen
Dazu musst du im Finder den Ordner "Python 3.8" finden, und darin das "Install Certificates.command" starten. Das oeffnet ein Fenster, und nach ein paar Sekunden tut das nix mehr und kann geschlossen werden.
Aufzurufen jetzt bitte so:
Code: Alles auswählen
import csv
import urllib.request
from urllib.request import urlopen
import cgi
import sys
import os
with open(sys.argv[1]) as csvfile:
bilder_path = sys.argv[2]
reader = csv.reader(csvfile, delimiter=';', quotechar='|')
for row in reader:
fileurl = row[0] #Link zum Herunterladen (Muss http, nicht https)
filepos = row[1] #erstes zweites oder drittes bild
remotefile = urlopen(fileurl)
info = remotefile.info()
filename = fileurl.split("/")[-1]
filename = f"{filepos}-{filename}"
urllib.request.urlretrieve(fileurl, os.path.join(bilder_path, filename))
print("finished", filename)
ACHTUNG: das schlaegt fehl, weil die Zertifikate von Python fehlen
Dazu musst du im Finder den Ordner "Python 3.8" finden, und darin das "Install Certificates.command" starten. Das oeffnet ein Fenster, und nach ein paar Sekunden tut das nix mehr und kann geschlossen werden.
Aufzurufen jetzt bitte so:
Code: Alles auswählen
python3 /Users/brittabaumgart/Desktop/Bildersicherung/Tool1.py /Users/brittabaumgart/Desktop/Bildersicherung/export1.csv /Users/brittabaumgart/Desktop/Bildersicherung/
Ich hab's vergessen zu erwaehnen, darum nochmal: ich erwarte jetzt explizit das Verzeichnis, in dem die Bilder landen sollten. Auch das war vorher kaputt. Es muessen also "python skript.py csv-datei verzeichnis" angegeben werden!!!!!
Das Zielverzeichnis soll sein:__deets__ hat geschrieben: Sonntag 1. Dezember 2019, 13:17 Ich hab's vergessen zu erwaehnen, darum nochmal: ich erwarte jetzt explizit das Verzeichnis, in dem die Bilder landen sollten. Auch das war vorher kaputt. Es muessen also "python skript.py csv-datei verzeichnis" angegeben werden!!!!!
/Users/brittabaumgart/Desktop/Bildersicherung/Bilder
Hi @__deets__
die Zertifikate scheinen abgeschlossen zu sein:
Last login: Sun Dec 1 12:48:39 on ttys000
Brittas-iMac:~ brittabaumgart$ /Applications/Python\ 3.8/Install\ Certificates.command ; exit;
-- pip install --upgrade certifi
Collecting certifi
Downloading https://files.pythonhosted.org/packages ... ne-any.whl (156kB)
|████████████████████████████████| 163kB 1.2MB/s
Installing collected packages: certifi
Successfully installed certifi-2019.11.28
WARNING: You are using pip version 19.2.3, however version 19.3.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
-- removing any existing file or link
-- creating symlink to certifi certificate bundle
-- setting permissions
-- update complete
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
Deleting expired sessions...none found.
[Prozess beendet]
die Zertifikate scheinen abgeschlossen zu sein:
Last login: Sun Dec 1 12:48:39 on ttys000
Brittas-iMac:~ brittabaumgart$ /Applications/Python\ 3.8/Install\ Certificates.command ; exit;
-- pip install --upgrade certifi
Collecting certifi
Downloading https://files.pythonhosted.org/packages ... ne-any.whl (156kB)
|████████████████████████████████| 163kB 1.2MB/s
Installing collected packages: certifi
Successfully installed certifi-2019.11.28
WARNING: You are using pip version 19.2.3, however version 19.3.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
-- removing any existing file or link
-- creating symlink to certifi certificate bundle
-- setting permissions
-- update complete
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
Deleting expired sessions...none found.
[Prozess beendet]