hallo zusammen
mich würde interessieren wie man einen text aus einer txt. datei löscht! welche befehle gibt es da!! ich suche schon ein ganz zeit lang finde aber nichts!
könnt ihr mir bitte helfen?
Danke
text aus einer txt- datei löschen
Du kannst aus einer Datei nichts direkt löschen, du musst sie lesen, ändern und neu schreiben. Schaue dir dazu die Funktion `open` an. Ist die Datei nicht zu groß, kannst du sie komplett in einen String einlesen und dann einfach die Teile des Strings wieder schreiben, die nicht gelöscht werden sollen.
Stefan
Stefan
heiß das nun ich muss die txtDatei öffnen und dann anschließend mit read() das File lesen und weiters mit write darüber schreiben oder habe ich das jetzt falsch verstanden? und zu meiner txt Datei sie hat nur eine Zahl also dürfte die größe keine Rolle spielen!!!!
danke
danke
Richtig. Datei zum Lesen öffnen, auslesen, schließen. Dann zum Schreiben öffnen, schreiben, schließen. Fertig.
Wenn du die alten Daten nicht mehr brauchst, dann kannst du den Schritt mit dem Lesen natürlich überspringen.
Wenn du die alten Daten nicht mehr brauchst, dann kannst du den Schritt mit dem Lesen natürlich überspringen.
Das Leben ist wie ein Tennisball.
Hallo ich habe nun deinen Rat probiert bin jedoch nich nicht zum ergebnis gekommen. ich stelle mal mein Skript hier herein vielleicht weiß ja wer woran es liegt.
wäre fro um jeden vorschlag
was soll es machen:
es soll kontroliieren ob die txt datei vorhanden ist wenn ja lesen und den wert um ein erhöhen. bis 51 dann soll sie die datei löschen und eine weitere erzeugen. gibt es keine datei muss es eine erzeugen mit dem wert 1
Danke
Code: Alles auswählen
import os
import os.path
if os.path.exists("C:/variante.txt"):
f = open("C:/variante.txt")
read_data = f.read()
anzahl = (int(read_data) + 1)
if anzahl == 51:
print anzahl
f.close()
os.remove("C:/variante.txt")
f_dat = open("C:/exit_from_python", "w")
f.dat.close()
else:
zahl = str(anzahl)
print zahl
f.close()
f = open("C:/variante.txt", "w")
f.write(zahl)
f.close()
else:
writeFile = open("C:/variante.txt", "w")
writeFile.write("1")
writeFile.close()
was soll es machen:
es soll kontroliieren ob die txt datei vorhanden ist wenn ja lesen und den wert um ein erhöhen. bis 51 dann soll sie die datei löschen und eine weitere erzeugen. gibt es keine datei muss es eine erzeugen mit dem wert 1
Danke
Zeile 21: " f_dat" muss es heißen.
Du solltest etwas wenig Leerzeilen benutzen und Konstanten verwenden. Dann noch ein wenig Fehlerbehandlung und etwas PEP 8.
Du solltest dir mal Gedanken machen, wie du die beiden else-Teile zusammenfassen kannst. Ist gar nicht so schwierig.
Du solltest etwas wenig Leerzeilen benutzen und Konstanten verwenden. Dann noch ein wenig Fehlerbehandlung und etwas PEP 8.
Du solltest dir mal Gedanken machen, wie du die beiden else-Teile zusammenfassen kannst. Ist gar nicht so schwierig.
Das Leben ist wie ein Tennisball.
danke aber ich hab noch ein ganz anderes problem wenn ich das Skript starte kommt mir diese Fehlermeldung:
und ich weiß nicht woran es liegt!!
habt ihr eine ahnung?
Code: Alles auswählen
Traceback (most recent call last):
File "C:\optadams\test.py", line 12, in ?
anzahl = (int(read_data) + 1)
ValueError: invalid literal for int():
[3796 refs]
Drücken Sie eine beliebige Taste . . .
und ich weiß nicht woran es liegt!!
habt ihr eine ahnung?
-
- User
- Beiträge: 17
- Registriert: Montag 25. Mai 2009, 10:32
Laß Dir doch mal ausgeben, wie read_data aussieht. Vielleicht hängt ja ein "\n" daran?max793 hat geschrieben:ich habe mir gedacht man kann einen string in ein int umwandeln?
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Dein Code sagt nicht mal im Ansatz, was du tun willst. Wenn ``anzahl`` die Anzahl der Zeilen sein soll, suchst du:
Was du momentan machst ist den Inhalt der Datei komplett auszulesen und da das nicht nur aus Zahlen zu bestehen scheint, fliegt dir das Skript um die Ohren.
Erzähl doch mal, was du genau machen willst und werf uns nicht nur die kleinen Bröckchen zu.
Code: Alles auswählen
read_data = f.readlines()
anzahl = len(read_data)
Erzähl doch mal, was du genau machen willst und werf uns nicht nur die kleinen Bröckchen zu.