Dateien einlesen/ändern

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.
Antworten
BartSimpson
User
Beiträge: 9
Registriert: Donnerstag 4. Januar 2007, 15:15

Hallo,
Ich habe vor, mit Python Textdateien einzulesen, und falls nötig einige Zeilen zu ändern. Bisher habe ich mit Python noch nie was gemacht.
Der 1. Gehversuch, war leider nicht von Erfolg gekrönt:(

Code: Alles auswählen

import fileinput,os
for Zeile in fileinput.input(os.getcwdu()+os.sep+"tmp"+os.sep+"ui_header"+os.sep+"*.h"):
    print fileinput.filename() 
Dort hagelt es nur Fehler: IOError: [Errno 2] No such file or directory
Kurz zur Dateistruktur:
Es existieren folgenden Unterverzeichnisse:
tmp/ui_header
unter ui_header liegen die zu bearbeiten Textdateien.(In dem Fall C++ .h)
Wie kann ich mir nun jede einzelne .h Datei dort "vorknöpfen"
Die Doku finde ich leider nicht besonders hilfreich, da sie für mein Geschmack etwas zu knapp gehalten ist:(
Andy
User
Beiträge: 196
Registriert: Sonntag 1. Januar 2006, 20:12
Wohnort: aus dem hohen Norden....

Herzlich Willkommen BartSimpson,

schau mal hier nach, http://www.python-forum.de/post-37898.html#37898. Schätze damit ist´s nur halb so kompliziert gelöst?!?
IOError: [Errno 2] No such file or directory
liegt die Datei im selben Ordner wie dein Script, sonst musst Du in der
Regel den gesamten Pfad angeben.

Gruß
BartSimpson
User
Beiträge: 9
Registriert: Donnerstag 4. Januar 2007, 15:15

Nur muss ich ja erst mal eine Liste aller Dateien bekommen.
Dann könnte man das auch über file machen.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Schau mal hier:

Code: Alles auswählen

>>> for datei in  glob.glob("/home/rbreu/test/*.h"):
...     print "Bearbeite Datei:", datei
...     f = open(datei, "r")
...     #Mach was...
...     f.close()
...
Bearbeite Datei: /home/rbreu/test/eggs.h
Bearbeite Datei: /home/rbreu/test/spam.h
>>>
Benutzeravatar
Mawilo
User
Beiträge: 452
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

Hallo,
BartSimpson hat geschrieben:Nur muss ich ja erst mal eine Liste aller Dateien bekommen.
Ich habe hier mal ein Beispiel, indem erst eine Liste erzeugt wird:

Code: Alles auswählen

import os

filepath = './tmp/ui_header/'

def readFiles():
    filelist = list()
    for f in os.listdir(filepath):
        p = os.path.join(filepath, f)
        if os.path.isfile(p) and os.path.splitext(p)[1] == '.h':
            filelist.append(p)
    print filelist
    
    for d in filelist:
        x = file(d, 'r')
        for line in x:
            print line
        x.close()
        
if __name__ == '__main__':
    readFiles()
Ist zwar ungetestet, sollte aber funktionieren :D
Stephan
BartSimpson
User
Beiträge: 9
Registriert: Donnerstag 4. Januar 2007, 15:15

Danke damit komme ich schon viel weiter:)
Antworten