Daten in CSV schreiben

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,
    ich möchte in Python Daten in eine CSV schreiben, lesen geht schon ,aber schreiben alles was ich bis jetzt genommen habe hat immer die Ganze Datei überschrieben z.B
    Vorher:

    Code
    test;test;test;test
    test2;test2;test2;test2


    Nacher:

    Code
    test3;test3;test3;test3


    Und das will ich gerade ja nicht die datei soll nacher so aussehen:

    Code
    test;test;test;test
    test2;test2;test2;test2
    test3;test3;test3;test3

    Aber wie mache ich das ohne das alles überschrieben wird?

    :helpnew::helpnew::helpnew::helpnew:

    Grüße
    Felix

    Danke im Voraus :danke_ATDE::danke_ATDE:

  • Hallo Felix,

    darf man so nebenbei erfahren, wie Du denn bislang die Datei geschrieben hast?

    Das vereinfacht den treffsicheren Ratschlag ungemein... :cool:

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Von Hand zum testen für das auslesen eingefügt!

    so:

    Code
    def writeBuchinCSV(Titel,Autor,Verlag,ISBN):
    wert = Titel + ";" + Autor + ";" + Verlag + ";" + ISBN
    f = open('test.csv','w')
    f.write(wert)
    f.close()


    dann hatte ich noch:

    Wird in beiden Fällen überschrieben.

    Zum Auslesen nehm ich :

    Grüße
    Felix

  • versuche mal statt:

    Code
    f = open('test.csv','w')

    folgende Variante...

    Code
    f = open('test.csv','a')

    wenn Du mit 'w' öffnest, dann wird immer überschrieben ---> steht für write..

    mit 'a' wird hinten angehängt... --> steht für append (denke ich mal..)

    ---------
    Nachtrag:

    http://openbook.galileocomputing.de/python/python_…d517241f3bae93b

    da findest alle Varianten (gegen Ende der Seite)

    Suche Gleichgesinnte für mein Projekt!
    jamesmatik_200.png
    soll ein Baukasten (Software und Hardwaremodule) für Temperatur-Logging, kleine Steuerungsaufgaben und Smart-Home werden.

    Einmal editiert, zuletzt von RasPi-Azubi (9. Juni 2014 um 10:00)

  • Siehe dazu -> http://www.tutorialspoint.com/python/python_files_io.htm

    Da findet man eine Tabelle wo 'a' oder 'w' usw beschrieben wird
    Diese Modes sind eigentlich Programmiersprache übergreifend überall gleich.

    Wenn du in der Datei gleichzeitig auch noch lesen möchtest musst du 'a+' nutzen, was die Datei zum "lesen" und "einfügen" öffnet sowie den Dateizeiger auf das Ende der Datei setzt. Wenn das Einfügen aber immer am Anfang der Datei stattfinden soll müsstest du 'r+' nutzen

  • ..schmunzel..

    wenn das so ist, dann muss ich mir "r+" mal genauer ansehen, denn ich wollte immer mit seek... versuchen den letzten Eintrag ganz am Anfang meiner Log-Files eintragen... ist mir bisher nie gelungen...

    Suche Gleichgesinnte für mein Projekt!
    jamesmatik_200.png
    soll ein Baukasten (Software und Hardwaremodule) für Temperatur-Logging, kleine Steuerungsaufgaben und Smart-Home werden.

    Einmal editiert, zuletzt von RasPi-Azubi (9. Juni 2014 um 10:32)

  • Ich frag mich, ob der TE schon lesen kann bzw die Suchmaschine seines Vertrauens zu bedienen weiss...

    1. werden Funktionsnamen klein geschrieben (PEP 8)
    2. https://docs.python.org/2/library/csv.html

    Code
    import csv
    with open('eggs.csv', 'rb') as csvfile:
        spamwriter = csv.writer(csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL)
        spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])
        spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])

  • 1. werden Funktionsnamen klein geschrieben (PEP 8)

    GROSS-/kleinschreibung spielt bei selber definierten Funktionen bzw Anweisungen keine Rolle. Deshalb funktioniert es nicht besser oder schlechter :lol:

  • GROSS-/kleinschreibung spielt bei selber definierten Funktionen bzw Anweisungen keine Rolle. Deshalb funktioniert es nicht besser oder schlechter :lol:

    Wenn man den Code teilt, hat man sich an den Standard zu halten allein der Lesbarkeit halber schon. Und die Richtlinie sagt eindeutig, dass Funktionen - und vor allem selbst definierte - klein zu schreiben sind!

    Zitat


    Function Names
    Function names should be lowercase, with words separated by underscores as necessary to improve readability.

    mixedCase is allowed only in contexts where that's already the prevailing style (e.g. threading.py), to retain backwards compatibility.

  • lol spielt im Privatgebrauch trotzdem keine Rolle - die Anweisung funktioniert dann weiterhin exakt identisch, egal ob mixedCase oder lowercase


    PS: Ich für mein Teil kann es besser lesen wenns nicht spamwriter sondern spamWriter heißen würde


  • Ich sehe es genauso wie meigrafd: Die Kamelhoeckerschreibweise ich leichter lesbar und ich benutze sie in Python, Java, C, bash, und in allen anderen Programmiersprachen. PEP hin oder her.

    Nun ja, für Java-Geschädigte mag es ggf. besser zu lesen sein. Gehörst du dann auch zu denen, die immer noch Maffia, Photographie, Schiffahrt, daß, im großen und ganzen usw. schreiben :D


  • Ich frag mich, ob der TE schon lesen kann bzw die Suchmaschine seines Vertrauens zu bedienen weiss...

    1. werden Funktionsnamen klein geschrieben (PEP 8)
    2. https://docs.python.org/2/library/csv.html

    Code
    import csv
    with open('eggs.csv', 'rb') as csvfile:
        spamwriter = csv.writer(csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL)
        spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])
        spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])


    Ich weiß schon Google zu bedienen, das habe ich auch gefunden ging bei mir nur nicht.

    Grüße
    von Felix
    :danke_ATDE::danke_ATDE::danke_ATDE::danke_ATDE::danke_ATDE::danke_ATDE:

  • ...Nun ja, für Java-Geschädigte mag es ggf. besser zu lesen sein. Gehörst du dann auch zu denen, die immer noch Maffia, Photographie, Schiffahrt, daß, im großen und ganzen usw. schreiben :D ...

    Keine Ahnung was die neue OttoGrafie mit Kamelen zu tun hat. Meine ErstDiagnose: JavaPhobie :bussi2:

  • Leute Leute.
    Ob KamelCase oder snake_case ist eine Frage des Stils. Es funktioniert auch wenn man sich nicht daran hält, das sollte aber NIEMALS empfohlen werden! Es sollte aber auch niemand schreiben ES MUSS SO SEIN. Denn das muss es halt nicht, es ist nur stark zu empfehlen sich an die Richtlinien der Sprache zu halten.
    @maigrafd: es ist ja auch snake_case und nicht snakecase was tatsächlich extrem schlecht zu lesen wäre.

    Und snake_case ist keine "neue OttoGrafie". Die Macher solcher Richtlinien blicken oftmals auf wesentlich mehr Programmiererfahrung in verschidensten Sprachen zurück als die meisten von uns zusammengenommen. Ich halte es für extrem gewagt solche Behauptungen anzustellen... In Ruby weiß ich, dass snake_case durchaus seinen Grund hat.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!