Hi,
Ich bin komplette Anfängerin in Python und muss nun in meinem Studium ein Werkzeug programmieren.
Dafür möchte ich gerne csv Dateien auslesen, bekomme aber das csv für Python 3 unter Linux nicht installiert.
Habe schon die Pakete pip install csv, pip install python3-csv und pip3 install csv probiert. Habe ich alle im Internet gefunden. Leider funktioniert keins.
Hat jemand eine Idee für mich.
Danke
Import csv in python3
Hi, ja hab es schon probiert übers Terminal zu installieren, da kommt immer folgende Fehlermeldung:
pip install csv
Defaulting to user installation because normal site-packages is not writeable
ERROR: Could not find a version that satisfies the requirement csv (from versions: none)
ERROR: No matching distribution found for csv
und wenn ich dies in Python bei diesem Beispiel probiere:
import csv
with open("05_20.csv") as csvdatei:
csv_reader_object = csv.reader(csvdatei)
for row in csv_reader_object:
print(row)
Dann kommt folgende Fehlermeldung:
Traceback (most recent call last):
File "csv.py", line 29, in <module>
import csv
File "/home/.../csv.py", line 31, in <module>
csv_reader_object = csv.reader(csvdatei)
AttributeError: module 'csv' has no attribute 'reader'
???? Ich bin einfach noch nicht in Python so tief drin.
pip install csv
Defaulting to user installation because normal site-packages is not writeable
ERROR: Could not find a version that satisfies the requirement csv (from versions: none)
ERROR: No matching distribution found for csv
und wenn ich dies in Python bei diesem Beispiel probiere:
import csv
with open("05_20.csv") as csvdatei:
csv_reader_object = csv.reader(csvdatei)
for row in csv_reader_object:
print(row)
Dann kommt folgende Fehlermeldung:
Traceback (most recent call last):
File "csv.py", line 29, in <module>
import csv
File "/home/.../csv.py", line 31, in <module>
csv_reader_object = csv.reader(csvdatei)
AttributeError: module 'csv' has no attribute 'reader'
???? Ich bin einfach noch nicht in Python so tief drin.
- __blackjack__
- User
- Beiträge: 14027
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Steffi: Anmerkungen zum Quelltext: Bei Textdateien sollte man immer explizit die Kodierung der Datei angeben. Und bei CSV-Dateien muss man noch das `newline`-Argument an `open()` übergeben. Sonst funktioniert das alles nur auf dem Rechner wo man das Programm und die CSV-Dateien geschrieben hat auch sicher, aber unter Umständen nicht mehr auf anderen Rechnern/Systemen.
Der Namenszusatz `object` bringt dem Leser keinen Mehrwert. *Alles* was man an einen Namen binden kann, ist in Python ein Objekt. Da hätte man konsequenterqeise auch `cvsdatei_objekt` und `row_object` schreiben können. Aber es macht halt nur den Namen länger, ohne tatsächlich irgendeine Information zu enthalten.
Der Namenszusatz `object` bringt dem Leser keinen Mehrwert. *Alles* was man an einen Namen binden kann, ist in Python ein Objekt. Da hätte man konsequenterqeise auch `cvsdatei_objekt` und `row_object` schreiben können. Aber es macht halt nur den Namen länger, ohne tatsächlich irgendeine Information zu enthalten.
Code: Alles auswählen
#!/usr/bin/env python3
import csv
def main():
with open("05_20.csv", encoding="ascii", newline="") as csv_file:
for row in csv.reader(csv_file):
print(row)
if __name__ == "__main__":
main()
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
- __blackjack__
- User
- Beiträge: 14027
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Steffi: So ganz allgemein für jedes PDF nein, für viele mit einigem Aufwand, für wenige relativ einfach. PDFs enthalten Daten für die Anzeige des Dokuments, wobei da keine Strukturdaten wie Tabellen mehr enthalten sind, sondern nur einzelne Anweisungen um Texte irgendwo auf der Seite zu platzieren und Linien zu zeichnen. Da kommt es dann auf das konkrete PDF und was die Software die es erstellt hat, da gemacht hat, an.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Hi blackjack,
danke dir für deine Antwort.
ich möchte ein Programm schreiben, mit dem ich Kontoauszüge nach einem Suchbegriff bzw. nach einem bestimmten Betrag durchsuchen kann. Und da dachte ich, dass ich die pdf Kontoauszüge erst einmal in eine csv Datei umwandel und dass ich dann diese einfacherer durchsuchen könnte.
Was sagst du zu meiner Idee?? Oder welche Vorgehensweise wäre einfacherer??
Danke
danke dir für deine Antwort.
ich möchte ein Programm schreiben, mit dem ich Kontoauszüge nach einem Suchbegriff bzw. nach einem bestimmten Betrag durchsuchen kann. Und da dachte ich, dass ich die pdf Kontoauszüge erst einmal in eine csv Datei umwandel und dass ich dann diese einfacherer durchsuchen könnte.
Was sagst du zu meiner Idee?? Oder welche Vorgehensweise wäre einfacherer??
Danke
Hi deets,
danke dir auch für deine Antwort,
Leider weiss ich nicht, was ein OCR Verfahren ist. Ich bin wirklich komplette Anfängerin und kämpfe mich durch mein Semester mit Programmierung.
Vielleicht hast du auch eine Lösung zu meiner Idee, was ich programmieren möchte.
Danke
danke dir auch für deine Antwort,
Leider weiss ich nicht, was ein OCR Verfahren ist. Ich bin wirklich komplette Anfängerin und kämpfe mich durch mein Semester mit Programmierung.
Vielleicht hast du auch eine Lösung zu meiner Idee, was ich programmieren möchte.
Danke
Hi Sirius,
Die meisten Banken stellen ihren Kunden die Kontoauszüge in pdf Form zur Verfügung und leider nicht in csv.
Wollte es praxisnah gestalten.
Habe aber auch schon in csv Format die Kontodaten geladen, leider sind die Daten alle etwas verrutscht und ich weiß nicht, was ich damit anfangen kann.
Wie programmiere ich denn am einfachsten eine Suche nach einem Begriff oder Betrag in einer csv Datei? Lg
Die meisten Banken stellen ihren Kunden die Kontoauszüge in pdf Form zur Verfügung und leider nicht in csv.
Wollte es praxisnah gestalten.
Habe aber auch schon in csv Format die Kontodaten geladen, leider sind die Daten alle etwas verrutscht und ich weiß nicht, was ich damit anfangen kann.
Wie programmiere ich denn am einfachsten eine Suche nach einem Begriff oder Betrag in einer csv Datei? Lg
Man geht Eintrag für Eintag durch die Daten und vergleicht, ob der Begriff oder der Betrag übereinstimmt. Dazu benutzt man eine for-Schleife.
Wenn Du Daten im csv-Format bekommst, dann sollten die nicht verrutscht sein. Das kann nur passieren, wenn es tatsächlich von einem PDF kommt, und dazu muß man die Struktur des PDF genau anschauen. Da die PDFs immer mit dem gleichen Programm erzeugt werden, sollte man die Struktur der Tabellen recht exakt rekonstruieren können.
Wenn Du Daten im csv-Format bekommst, dann sollten die nicht verrutscht sein. Das kann nur passieren, wenn es tatsächlich von einem PDF kommt, und dazu muß man die Struktur des PDF genau anschauen. Da die PDFs immer mit dem gleichen Programm erzeugt werden, sollte man die Struktur der Tabellen recht exakt rekonstruieren können.
- __blackjack__
- User
- Beiträge: 14027
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Steffi: Was heisst denn „etwas verrutscht“ konkret?
Und welche Bank bietet denn kein Format an das maschinenlesbar ist? Theoretisch müsste man die via DSGVO dazu bringen können die Daten in maschinenlesbarer Form raus zu rücken.
Und welche Bank bietet denn kein Format an das maschinenlesbar ist? Theoretisch müsste man die via DSGVO dazu bringen können die Daten in maschinenlesbarer Form raus zu rücken.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Ich vermute mal mit "etwas verrutscht" ist gemeint, dass in der CSV-Datei vor den eigentlichen strukturierten Daten noch andere Daten, wie Kontonummer, Zeitraum der Daten und andere Stammdaten mitgespeichert werden. Jedenfalls macht das meine Bank so auch. Diese Zeilen müssen dann beim einlesen übersprungen werden
HI,
habe die verrutschten Zeilen hinbekommen. Musste bei den Trennoptionen einiges raus nehmen
Das Soll und Haben war in den Zeilen verrutscht.
@Sirius: okay mit einer for-Schleife. Danke dir. Ich schaue mal, ob ich das hinbekomme.
habe die verrutschten Zeilen hinbekommen. Musste bei den Trennoptionen einiges raus nehmen

@Sirius: okay mit einer for-Schleife. Danke dir. Ich schaue mal, ob ich das hinbekomme.
Danke euch allen. Das mit den verrutschten Zeilen habe ich nun über Trennoptionen in der csv Datei hinbekommen.
Ich finde nur keinen Ansatz, wie ich nun die csv Datei nach einem Begriff / Betrag durchsuchen kann?!?!
Wie überspringe ich denn Zeilen beim einlesen???
Ich finde nur keinen Ansatz, wie ich nun die csv Datei nach einem Begriff / Betrag durchsuchen kann?!?!
Wie überspringe ich denn Zeilen beim einlesen???
Du kannst keine Zeilen beim einlesen überspringen. Aber du kannst aus allen Zeilen nur die rausfiltern, die dir passen. Mit einer for-schleife und einer Funktion die für eine Zeile angibt, ob die relevant ist.
Code: Alles auswählen
matching = []
for row in all_rows:
if predicate(row):
matching.append(row)
Ich habe bisher folgendes:
import csv
search = input("Suchbegriff: ")
stock = open ("05_20.csv","wb")
reader = csv.reader("05_20")
for row in reader:
for field in row:
if field == input:
print ("Gefunden n")
print (row[0])
print (row[1])
print (row[2])
ich verstehe das mit dem row noch nicht und so richtig funktionieren es nicht. Ich kann zwar ein Suchbegriff eingeben, aber es kommt nichts sinnvolles raus.
ich gebe zum Beispiel Amazon ein und es kommt folgendes raus:
python3 pd.py
Suchbegriff: Amazon
0
5
_
2
0
irgendwas mach ich falsch. Wenn ich Amazon eingebe, muss ich auch row[1] und row[2] raus löschen, sonst geht es nicht.????!!!
import csv
search = input("Suchbegriff: ")
stock = open ("05_20.csv","wb")
reader = csv.reader("05_20")
for row in reader:
for field in row:
if field == input:
print ("Gefunden n")
print (row[0])
print (row[1])
print (row[2])
ich verstehe das mit dem row noch nicht und so richtig funktionieren es nicht. Ich kann zwar ein Suchbegriff eingeben, aber es kommt nichts sinnvolles raus.
ich gebe zum Beispiel Amazon ein und es kommt folgendes raus:
python3 pd.py
Suchbegriff: Amazon
0
5
_
2
0
irgendwas mach ich falsch. Wenn ich Amazon eingebe, muss ich auch row[1] und row[2] raus löschen, sonst geht es nicht.????!!!