2016-08-18 3 views
-1
Öffnen
path = r'C:\Myfolder\data\today' 
for root, directories, filenames in os.walk(path): 

    for filename in filenames: 
     fname = os.path.join(root,filename) 
     if os.path.isfile(fname) and fname[-4:] == '.log': 
      if fname not in rows1: 
       print fname 
       fname=fname.replace(path,"") 
       with open(fname, 'r') as myfile: 

Meine Dateinamen wie C aussieht: \ Myfolder \ data \ heute \ 00.log und ich brauche nur "heute \ 00.log" Der Fehler ist IOError : [Errno 2] Keine solche Datei oder Verzeichnis: '\ today \ 00.log' Wie \ aus dem Dateinamen entfernen?doppelte Backslash (\) in Dateinamen während

+0

Warum bist du den Pfad entfernen? Sie könnten 'fname = fname.replace (path," "). lstrip (" \\ ") verwenden, aber ich weiß nicht, warum Sie tun, was Sie sind. –

+0

Warum nicht das \ im Namen loswerden. Auch Pfad = r "C: \\ Myfolder \ data \ today" – thesonyman101

+0

Das Ergebnis ist wieder heute \\ 00.log - Ich muss diesen Dateinamen in einer Datenbanktabelle speichern und dafür brauche ich keinen absoluten Pfad. – Prasad

Antwort

-1

Außerdem ist es nicht wirklich ein Fehler, sollten Sie nicht einem bekannten Präfix, verwenden String-Slicing statt und verwenden Sie den vollständigen Dateinamen abzustreifen verwenden ersetzen, um die Datei zu öffnen:

path = r'C:\Myfolder\data\today' 
for root, directories, filenames in os.walk(path): 
    for filename in filenames: 
     fullname = os.path.join(root,filename) 
     if os.path.isfile(fullname) and fullname[-4:] == '.log': 
      if fullname not in rows1: 
       print fullname 
       fname = fullname[len(path)+1:] 
       with open(fullname, 'r') as myfile: 
        do_something 
Verwandte Themen