Seite 1 von 1

Dateien einlesen/ändern

Verfasst: Donnerstag 4. Januar 2007, 15:31
von BartSimpson
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:(

Verfasst: Donnerstag 4. Januar 2007, 15:50
von Andy
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ß

Verfasst: Donnerstag 4. Januar 2007, 15:59
von BartSimpson
Nur muss ich ja erst mal eine Liste aller Dateien bekommen.
Dann könnte man das auch über file machen.

Verfasst: Donnerstag 4. Januar 2007, 16:02
von Rebecca
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
>>>

Verfasst: Donnerstag 4. Januar 2007, 16:05
von Mawilo
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

Verfasst: Donnerstag 4. Januar 2007, 16:22
von BartSimpson
Danke damit komme ich schon viel weiter:)