Python2无法读取当前目录下dates.txt文件问题求助
文件存在但Python函数提示找不到的排查思路
问题场景
当前工作目录文件列表:
[jzun@hscd8a25e93f9vm dates]$ pwd /home/jzun/vivo_mod_samples/dates [jzun@hscd8a25e93f9vm dates]$ ls date_def.json dates_add.rdf dates.bak dates.rdf dates_sub.rdf dates.txt datetime_precision_enum.txt gen_date_rdf.py gen_date_rdf.py.bak gen_dates.py gen_dates.py.bak get.txt README.md run_pump_2_to_create_date_defs.sh sv.cfg
使用的Python2函数:
def read_csv(filename, skip=True, delimiter='|'): """ Read a CSV file, return dictionary object :param filename: name of file to read :param skip: should lines with invalid number of columns be skipped? False=Throw Exception :param delimiter: The delimiter for CSV files :return: Dictionary object """ cwd = os.getcwd() print("read_csv>current dir = " + cwd) with open(filename, 'rU') as fp: data = read_csv_fp(fp, skip, delimiter) fp.close() return data
调用read_csv("dates.txt")时的错误输出:
read_csv>current dir = /home/jzun/vivo_mod_samples/dates dates.txt file not found
排查思路
- 验证实际访问路径:在函数中添加
print("实际访问路径:", os.path.abspath(filename)),打印出要打开文件的绝对路径,确认是否与存在的dates.txt路径完全一致。 - 检查文件权限:执行
ls -l dates.txt查看文件权限,确保运行Python脚本的用户拥有读取权限(权限位需包含r,如-rw-r--r--)。 - 排查文件名隐藏字符:用
ls -b dates.txt查看文件名的原始编码,确认没有空格、换行或不可见特殊字符导致文件名不匹配。 - 确认参数传递正确性:检查调用
read_csv时传入的filename参数,是否存在大小写错误(Linux区分大小写)、多余空格或路径拼写问题。 - 检查
read_csv_fp函数逻辑:错误提示可能来自read_csv_fp而非open语句,需确认该函数内部是否有额外文件操作,或错误处理逻辑误判为文件不存在。 - 尝试修改文件打开模式:将
open的rU模式替换为普通r模式,排查通用换行符模式在特定文件系统下的兼容性问题。
内容的提问来源于stack exchange,提问作者Jose Cabrera Zuniga
相关产品推荐
相关产品推荐

