【问题标题】:python; reading file path errorPython;读取文件路径错误
【发布时间】:2019-02-01 19:40:27
【问题描述】:

我有一个目录结构;

DIR1: ----outerPyFile.py ----DIR2: --------innerPyFile.py --------DIR3: ------------fileToRead.csv


我正在读取 innerPyFile 中的 fileToRead.csv:pd.read_csv('DIR3/fileToRead.csv') 如果我单独运行 innerPyFile.py 效果很好

现在当在 outerPyFile.py 中导入 innerPyFile 模块时
import innerPyFile
-- FileNotFoundError: DIR3\\fileToRead.csv. 不存在

我尝试用 absolute path 在innerPyFile 中将路径替换为pd.read_csv(os.path.abspath('DIR3/fileToRead.csv'))

不过,当我运行 outerPyFile 时,我得到了,
FileNotFoundError C:\\\DIR1\\\DIR3\\\fileToRead.csv 不存在,

这里的代码省略了 DIR2,所以我将代码更改为 pd.read_csv(os.path.abspath('DIR2/DIR3/fileToRead.csv'))

现在,当我运行 outerPyFile.py 时,代码结构工作文件是可以接受的。 但是当我单独运行innerPyFile时会出现问题,因为它会搜索在innerPyFile的CWD中不存在的DIR2。

任何人都可以怀疑这种行为,
请回复我这是怎么回事?

仅供参考,我也试过 pathLib 模块,但没有解决问题。

【问题讨论】:

    标签: python path absolute-path os.path pathlib


    【解决方案1】:

    试试这个:

    innerPyFile.py

    import os
    script_path = os.path.abspath(__file__) # i.e. /path/to/dir/foobar.py
    script_dir = os.path.split(script_path)[0] #i.e. /path/to/dir/
    rel_path = "DIR3/fileToRead.csv"
    abs_file_path = os.path.join(script_dir, rel_path)
    
    pd.read_csv(abs_file_path)
    

    outerPyFile.py

    import DIR2.innerPyFile
    #......do something.....
    

    【讨论】:

      猜你喜欢
      • 2013-11-15
      • 2015-11-17
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多