[Python] perchè os.path.abspath(filename) mi raddoppia le backslash?

Gollum1 gollum1.smeagol1 a gmail.com
Gio 12 Mar 2015 15:56:09 CET


devo analizzare una serie non breve di file csv, divisi in diverse directory...

questo è il codice iniziale che ho scritto... a cui poi mi sono già arenato:

import os
import csv

for dirname, dirnames, filenames in os.walk('./reports'):
    for filename in filenames:
        filename_abs = os.path.abspath(filename)
        print ("filename    :    ", filename_abs)
        with open(filename_abs, newline='\r\n', encoding='utf-16') as
csv_source:
            reader = csv.reader(csv_source, delimiter=',')
            for row in reader:
                if row[0] == '400':
                    print("delete row:", row)

e questo è il risultato:

filename    :     D:\My Documents\p977727\Documents\03 -
Sviluppo\winaudit_report\ASP2.csv
    with open(filename_abs, newline='\r\n', encoding='utf-16') as csv_source:
FileNotFoundError: [Errno 2] No such file or directory: 'D:\\My
Documents\\p977727\\Documents\\03 -
Sviluppo\\winaudit_report\\ASP2.csv'


il file è memorizzato correttamente nella variabile filename_abs,
perché allora quando lo uso nella open vengono duplicato tutti gli
'\'? e quindi il file non è più raggiungibile?

ho provato a farlo passare anche in os.path.normpath(path), ma nulla è cambiato.

in cosa sto sbagliando?

Tnx&Byez
-- 
Gollum1 - http://www.gollumone.it
Tesssssoro, dov'é il mio tessssoro...


Maggiori informazioni sulla lista Python