Dateien öffnen / bearbeiten

Python Dateien erstellen und auslesen („write to file“),

Um eine Datei auszulesen muss diese erst geöffnet werden.

fobj = open("dateiname.txt", "r")

Das r steht für read (also lesen) Die Angabe von w heisst write (also schreiben)

Nach der Bearbeitung einer Datei, muss diese wieder geschlossen werden. Dies geschieht mit der Methode close:

fobj.close()

Das folgende Programmstück liest eine Datei zeilenweise ein und druckt jede Zeile aus, wobei mit der Methode rstrip() etwaige Leerzeichen und Newlines vom rechten Rand entfernt werden:

fobj = open("dateiname.txt")
for line in fobj:
    print line.rstrip()
fobj.close()

Datei in Python zeilenweise einlesen

Dateien in Python können relativ einfach Zeilenweise eingelesen werden, wie folgendes Beispiel zeigt:

#/usr/bin/python3
file=open("liste.txt","r")
for line in file:
    print(line.rstrip())
file.close()    

Datei zum schreiben öffnen

Mit der For-Schleife  wird die Datei zeilenweise eingelesen und im Terminal ausgegeben. Dabei werden mit rstrip nachfolgende Zeilenumbrüche und Leerzeichen entfernt.

Mit close kann die Datei wieder geschlossen werden.

fobj_in = open("dateiname.txt")
fobj_out = open("dateiname.txt","w")
i = 1
for line in fobj_in:
    print line.rstrip()
    fobj_out.write(str(i) + ": " + line)
    i = i + 1
fobj_in.close()
fobj_out.close()

Überschreiben einer Datei in Python mit der Methode file.truncate()

Da wir die Daten der Datei erst lesen und dann überschreiben wollen, können wir dies mit der Methode file.truncate() tun.

Öffnen Sie zunächst die Datei im Lesemodus mit der Methode open(), lesen Sie die Dateidaten und suchen Sie den Anfang der Datei mit der Methode file.seek(), schreiben Sie die neuen Daten und schneiden Sie die alten Daten mit der Methode file.truncate() ab.

Der folgende Beispielcode demonstriert, wie die Datei mit den Methoden file.seek() und file.truncate() überschrieben werden kann.

with open('myFolder/myfile.txt','r+') as myfile:
    data = myfile.read()
    myfile.seek(0)
    myfile.write('newData')
    myfile.truncate()

Ein weiteres Beispiel:

#/usr/bin/python3
datei=open("liste.txt","w+")
print ("Bitte das Wort eingeben")
wort=input()
if wort in datei:
    print("Wort ist bereits vorhanden")
else:    
    print("Das Wort ist noch nicht hinterlegt, bitte die Übersetzung eingehen:")
    translate=input()
    print (datei.write(wort))
    print (datei.write(":"))
    print (datei.write(translate))
    print(datei.read())
datei.close()

Einen String in einer Datei ersetzen:

#read input file
fin = open("data.txt", "rt")
#read file contents to string
data = fin.read()
#replace all occurrences of the required string
data = data.replace('sc', 'fM')
#close the input file
fin.close()
#open the input file in write mode
fin = open("data.txt", "wt")
#overrite the input file with the resulting data
fin.write(data)
#close the file
fin.close()

Einen String in einer Datei ersetzen und in einer anderen Datei die Ausgabe speichern:

#/usr/bin/python3
#input file
fin = open("data.txt", "rt")
#output file to write the result to
fout = open("out.txt", "wt")
#for each line in the input file
for line in fin:
	#read replace the string and write to output file
	fout.write(line.replace('sc', 'fM').replace('inc','Zun'))
   
#close input and output files
fin.close()
fout.close()