Python 3:使用os.path.isfile函数未识别现有文件

时间:2016-04-18 02:13:17

标签: python filepath

目录中有一个7.csv文件:〜/ Documents / Jane / analyst / test / 1 /。我能够使用pandas.read_csv函数读取此文件没有问题。

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

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

但是当使用os.path.isfile()检查此文件是否存在时,结果返回False。

os.path.isfile(f_path)

False

可能的错误来源是什么?

2 个答案:

答案 0 :(得分:4)

os.path.isfile()和os.path.exists()都不会将~识别为主目录。 ~是python中无法识别的shell变量。它必须是完全指定的,或者您可以使用相对目录名。

但如果您真的想将~作为主页,那么您可以

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

答案 1 :(得分:1)

正如亨提到的那样,你的代码应该是

import os

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

这会将波浪号扩展为绝对路径。 〜,.和..对于他们在unix shell中执行的python os包没有相同的含义,需要由不同的函数解释。