2016-04-18 6 views
0

Ich habe eine Datei 7.csv im Verzeichnis: ~/Documents/Jane/analyst/test/1 /. Ich konnte diese Datei mit der Funktion pandas.read_csv ohne Probleme lesen.Python 3: Eine vorhandene Datei wird nicht mit der Funktion os.path.isfile identifiziert.

f_path = '~/Documents/Jane/analyst/test/1/7.csv' 

pd.read_csv(f_path, index_col=None, header=0) 

Aber bei der Prüfung, ob diese Datei os.path.isfile() exsiting verwendet, kehrt das Ergebnis falsch.

os.path.isfile(f_path) 

False 

Was könnte die mögliche Fehlerquelle sein?

+0

Vielleicht müssen Sie den vollständigen Pfad verwenden. Überprüfen Sie das übergeordnete Verzeichnis der Datei mit 'os.path.exists (Pfad)' – JRazor

Antwort

4

Sowohl os.path.isfile() als auch os.path.exists() erkennen ~ nicht als Home-Verzeichnis. ~ ist eine Shell-Variable, die in Python nicht erkannt wird. Es muss entweder vollständig angegeben werden oder Sie können den relativen Verzeichnisnamen verwenden.

Aber wenn man wirklich ~ wie zu Hause verwenden möchten, können Sie

from os.path import expanduser 
home = expanduser("~") 
1

tun Wie hun erwähnt, sollte der Code sein

import os 

f_path = '~/Documents/Jane/analyst/test/1/7.csv' 
os.path.isfile(os.path.expanduser(f_path)) 

Dies wird die Tilde in einen absoluten Pfad erweitern. ~,. und .. haben nicht die gleiche Bedeutung wie das Python-os-Paket, das sie in einer Unix-Shell ausführen und müssen von separaten Funktionen interpretiert werden.

+0

Funktioniert perfekt. Vielen Dank! – enaJ