Seite 1 von 1

Wenn Datei vorhanden ... wenn nicht dann ... ??

Verfasst: Montag 23. Februar 2004, 21:17
von Topcam
Hallo .

Ich bin mit dem Thema PYTHON noch nicht ganz auf Du und Du.

Meine Frage:
Was mache ich hier falsch ?????

######Code gelöscht######
#Da hier ja erst gemotzt wird und dann noch nicht mal geholfen wird#

Danke

Topcam

Neue Frage :

wie mache aus eine INT ein Str und anders rum ?
Da mein File was ausgelesen wird nur Zahlen beinhaltet und ich diese mit einer ZAHL Plus nehmen möchte.

Topcam ( besser so ?)

Verfasst: Montag 23. Februar 2004, 21:37
von Milan
Hi. Tut mir leid wenn ich zuerst meckere, aber darauf muss ich bestehen: Quellcode kommt immer in Codetags des BBCodes. Das ist zwingend für Lesbarkeit und außerdem Vorschrift :roll: :wink:

Gruß, Milan

Verfasst: Mittwoch 25. Februar 2004, 09:35
von HarryH
Hallo Topcam,
######Code gelöscht######
#Da hier ja erst gemotzt wird und dann noch nicht mal geholfen wird#
Topcam, sieh doch die Kritik von Milan nicht gleich so hart. Es ist nun mal nötig bestimmte Richtlinien einzuhalten. Es profitiert nur jeder davon!

Nun zu deiner anderen Frage:
wie mache aus eine INT ein Str und anders rum ?
int zu string:

Code: Alles auswählen

str(12)
string zu int (geht nartürlich nur mit Zahlenstrings):

Code: Alles auswählen

int("12")

Verfasst: Mittwoch 25. Februar 2004, 11:27
von Gast
Danke für Dein Verständnis.

Wenn man mir gesagt hätte, das das einfügen des Codes so geht:

Code: Alles auswählen

#!/usr/bin/python

def datei_lesen (datei):
    try:
        in_file = open(datei,"r")
    # Datei zum Lesen (r: read w: write a: anhängen) öffnen
    except IOError:
        in_file = open(datei,"w")
        in_file.write("1")
        in_file.close()
        return 0
    else:
        zahl = in_file.read() # Datei lesen
   >  int("zahl") #Hier liegt der Hund begraben ??????
   >  C = zahl + 1 #????????????
        in_file= open(datei,"w")
        #in_file.seek(2)
        in_file.write(C)
        in_file.close() # Datei schliessen
        print C      # und Inhalt ausgeben
        return 1


pfad = 'f:/www/labor/' # hier anpassen!
dateiname =  'test.txt' #raw_input('Dateiname eingeben: ')
print '\n\nLese die Datei: ' + dateiname
ergebnis = datei_lesen(pfad+dateiname)
if ergebnis == 1:
   
    print 'Gelesen: ' + dateiname
    print 'Fertig . . . (viewer.py)'

wäre ich ja schon zufrieden gewesen. Da ich nicht der einzigste hier bin
der Code Eintragungen ohne "CODE" "/CODE" gemacht hat.


Jetzt aber noch eine Frage zu meinem Code:
Wie man sieht versuche ich dirch das einlesen die vorhandene Zahl
um 1 zuerhöhen. Wie gehe ich da am besten vor ?


Topcam

Verfasst: Mittwoch 25. Februar 2004, 12:01
von Milan
Hi. Tut mir wirklich leid und ich mein das oben auch nicht böse, aber als Moderator ist es meine Aufgabe auf das hinzuweisen. Die Regeln existieren auch erst seit kurzen in so klarer Form. Auf dem Link ist ja eigentlich auch zu sehen, wie die tags aussehen, also eigentlich konstruktive Kritik und kein reines rummeckern :wink: .

Aber nun mal weiter im Text: Du musst int die VAriable übergeben und das Ergebniss auch wieder speichern. Schlussendlich musst du aber wieder in einen String zurückwandeln. Du musst also nur deins so hier umschreiben:

Code: Alles auswählen

        zahl = in_file.read() # Datei lesen 
        zahl=int(zahl)
        c=zahl+1
        in_file= open(datei,"w") 
        #in_file.seek(2) 
        in_file.write(str(C))

Verfasst: Mittwoch 25. Februar 2004, 12:16
von akIra
viel spass, und keine Fragen, was denn das für merkwürdige Pfadangaben seien :wink:

Code: Alles auswählen

#!/usr/bin/python 
def datei_lesen (datei): 
    zahl = 1
    try: 
        in_file = open(datei,"r")
        zahl = int(in_file.read()) # Datei lesen
    except ValueError:
        in_file.close()
        return 2
    except IOError: 
        in_file = open(datei,"w") 
        in_file.write(str(zahl)) 
        in_file.close() 
        return 0 
    else: 
        zahl = zahl + 1 #???????????? 
        in_file= open(datei,"w") 
        in_file.write(str(zahl)) 
        in_file.close() # Datei schliessen 
        print zahl      # und Inhalt ausgeben 
        return 1 
pfad = "C:\\"
dateiname = 'test.txt' #raw_input('Dateiname eingeben: ') 
print '\n\nLese die Datei: ' + dateiname 
ergebnis = datei_lesen(pfad+dateiname) 
if ergebnis == 1: 
    print 'Gelesen: ' + dateiname 
    print 'Fertig . . . (viewer.py)'
elif ergebnis == 2:
    print 'Typenfehler !'
else:
    print "Datei",dateiname,"erfolgreich erstellt."

Verfasst: Donnerstag 26. Februar 2004, 08:35
von Topcam
Ich danke für die schnelle Hilfe.

Das mit dem Meckern habe ich schon runtergeschluckt.
Kann ja vorkommen.


Topcam