Probleme bei Datei auslesen bzw. Inhalt anzeigen

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.
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

@Hyperion: Sorry aber mit deinen Hinweisen bzw. mit dem Code kann ich persönlich nicht wirklich was anfangen.
Ich hab nach "Slicing" Google befragt und hab dementsprechend es so geändert. Das ich am Ende es in einem String wandle is ja dazu da das ich die überflüssigen Zeichen replacen kann.
Ansonsten wüsste ich echt nicht wie ich das ganze sonst machen sollte. So bewandert bin ich nicht was Python betrifft.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Kalli87 hat geschrieben:@Hyperion: Sorry aber mit deinen Hinweisen bzw. mit dem Code kann ich persönlich nicht wirklich was anfangen. ...So bewandert bin ich nicht was Python betrifft.
Sorry auch, aber das sind *absolute* Basics, die in jedem Tutorial erklärt und vermittelt werden!

Musst Du denn Python lernen? Wenn ja, vergiss das erst einmal und arbeite das offizielle Tutorial durch, alternativ auch gerne für Programmieranfänger genommen ist "Learn python the hard way" (keine Angst vorm Titel!).

Wir reden hier wirklich über die einfachsten Dinge, wie String-Manipulationen und Grundlagen zu Listen. Bei beidem wird Slicing sicherlich erklärt.

Ohne diese Basics gelingen eben nicht einmal einfachste Dinge - wie Du ja gerade selber merkst!

Und nein, Du hast doch gar keine Leerzeichen mehr, wenn Du das nutzt‽

Ungetestet bliebe für mich folgendes:

Code: Alles auswählen

def lookup_key(key):
    with open(...) as f:
        for row in f:
            if row.startswith(key):
                return row[22:]
    throw KeyError("Key '{}' not found!".format(key))
        
value = lookup_key("1010")
Edit: Code noch mal vereinfacht
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

@Kalli87: wie man aber aus einem String bestimmte Zeichen bekommen kann, hast Du ja quasi schon gezeigt. Das Problem ist, dass Du nicht verstehst, was diese Zeilen

Code: Alles auswählen

        name = []
        for dsatz in export_name[95]:
            name.append(dsatz)
bewirken, bzw. dass Du das gar nicht willst/brauchst.

Wenn Du replace kennst, hast Du sicher schon mal von split und strip gehört. Also warum verwendest Du das nicht mal, anstatt irgendwelche Zeichen zu zählen?

@Hyperion: wenn wir jetzt mit

Code: Alles auswählen

with open("/home/gast/Arbeitsfläche/Projekte/dicomserver.txt", "r", encoding="iso-8859-15") as f:
    data = dict(row.split(';',2)[1:] for row in map(str.split, f) if not row.startswith('#')
    
print data['EXPORT_NAME1']
kommen, dann sagt Kalli nur wieder vielen Dank und kommt morgen mit der nächsten simplen Frage.
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

@Hyperion: Leider muss ich es lernen und anwenden und nein ich kann nicht zurück zu den "basics" ich muss leider hier ein Programm schreiben mittlerweile und ich kann schlecht zu meinem Chef vom Praktikum gehen und sagen "tut mir leid aber ich kann es nicht". Sowas geht nicht ich will was lernen und wenn mein code scheiße is dann is es halt so aber es funktioniert im erstem Sinne.

@Sirius3: Ja hast recht split sagt mir was bei strip muss ich nachschauen.

Ich werd beide Varianten mal in Augenschein nehmen

@Sirius3:
Ich hab nie nach nem kompletten Code gefragt es waren immer nur simple Fragen die dabei aber extrem ausgeartet sind weil aus ner Mücke eine Elefant wurde.
Und dein Code versteh ich gerade gar nicht also muss ich selbst erstmal nachvollziehen was du genau anstellst damit.
Und trotzdem sag ich Danke das ihr geholfen habt obwohl ich bereits vorher wusste das ihr mich steinigt :wink:

ps.: Willst du jetzt ne Wette abschließen das ich Morgen euch wieder mit einer simplen Frage "belästige"?
BlackJack

@Kalli87: Wenn Du es lernen musst dann *musst* Du zu den Grundlagen zurück, denn die heissen ja nicht ohne Grund so. Anders geht es nicht. Und ob Du nun zu Deinem Chef gehst und sagst Du kannst es nicht, oder ob der sich den Quelltext mit dem `replace()` anschaut ist egal — daran sieht er ja auch ohne das Du etwas sagst das Du es nicht kannst. Du kannst dann höchstens hoffen das keiner in den Quelltext schaut und merkt wie überfordert Du mit der Aufgabe bist und Dich da irgendwie durchs Praktikum ”mogeln”.
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Kalli87 hat geschrieben:Willst du jetzt ne Wette abschließen das ich Morgen euch wieder mit einer simplen Frage "belästige"?
Wenn du dir mal die Zeit nehmen würdest, das offizielle Python-Tutorial durchzuarbeiten (ggf auch nach Feierabend), dann würden sich viele simple Fragen von selbst beantworten lassen. Es stört ja nicht allein die Tatsache, dass du Anfängerfragen stellst, sondern vielmehr, dass du das Forum als so ziemlich einzige Quelle für dein Python-Wissen ansehen zu scheinst. Dieser Weg bringt dich kaum voran und wird zu weiteren genervten Reaktionen führen.
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

Ich bin der einzige hier im Praktikum der mit Python arbeitet und der es gerade mal ansatzweise versteht. Ich kann schlecht mich jetzt wieder Wochenlang mit den Basics herumschlage, das geht einfach nicht! Der Quelltext interessiert hier auch keinen, keiner schaut mal drüber. Maximal wird gesagt "mach mal die Schrift größer von der Oberfläche" oder "der Button soll dort hin". Außerdem, was heißt mogeln? Wenn ich schummeln würde würde ich ganz woanders Praktikum machen mir meine Zettel einfach unterschreiben lassen obwohl ich nix gemacht habe, nachweisen kann das am ende keiner.

Also bitte Urteilt nicht so voreilig, Ihr seit, in meinen Augen, Python-Experten und ich ein blutiger Anfänger der nach und nach versucht besser zu werden. Das dabei ziemlich viel "scheiße" dabei raus kommt sei mal dahingestellt. Denn ich steh weiterhin allein auf weiter Flur.
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

snafu hat geschrieben:
Kalli87 hat geschrieben:Willst du jetzt ne Wette abschließen das ich Morgen euch wieder mit einer simplen Frage "belästige"?
Wenn du dir mal die Zeit nehmen würdest, das offizielle Python-Tutorial durchzuarbeiten (ggf auch nach Feierabend), dann würden sich viele simple Fragen von selbst beantworten lassen. Es stört ja nicht allein die Tatsache, dass du Anfängerfragen stellst, sondern vielmehr, dass du das Forum als so ziemlich einzige Quelle für dein Python-Wissen ansehen zu scheinst. Dieser Weg bringt dich kaum voran und wird zu weiteren genervten Reaktionen führen.
https://docs.python.org/3/library/functions.html#open
http://docs.scipy.org/doc/numpy/referen ... array.html
http://py-tutorial-de.readthedocs.org/d ... rrors.html
http://effbot.org/tkinterbook/tkinter-e ... ndings.htm
http://www.tutorialspoint.com/python/py ... ptions.htm
https://docs.python.org/3.2/library/exc ... ValueError
http://effbot.org/tkinterbook/radiobutton.htm
http://www.pythoncentral.io/how-to-slic ... in-python/
http://stackoverflow.com/questions/1198 ... r-n-with-n

Das nur mal am Rande was ich alles für Tabs offen habe und das is nur ein kleiner Teil.
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Okay, das ist wenigstens mal gutes ein Indiz für Eigenrecherche. *daumen-hoch*
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

@Kalli87: hast Du auch eine Python-Shell offen, in der Du kleine Dinge ausprobierst? Das ist auch wesentlich, gerade um Dinge wie ``split``, ``strip`` usw. nachzuvollziehen und ein wenig damit zu experiementieren :-)

(Wenn nicht dringend damit anfangen!)

Im übrigen dauert das keine "Wochen"! Ich denke ein Tag würde für dich ggf. schon reichen, um die in diesem Thread angesprochenen Basics einmal nachvollziehen zu können. Das offizielle Tutorial kommt doch iirc recht früh auf Strings und auch Listen zu sprechen...
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten