【问题标题】:one path level up using ../ in google colab在 google colab 中使用 ../ 提升一级路径
【发布时间】:2021-09-30 01:34:22
【问题描述】:

我要处理一个GitHub代码,一篇论文的代码,很大,所以手动更改它需要很多时间。
更新问题:
该代码在不同的目录中包含多个 python 文件和模块,如下所示:

algorithm1/
├─ data/
├─ model/
├─ some_func.py
├─ evaluate.py
├─ train.py
utils/
├─ data/
├─ model/
├─ some_helper.py
├─ plot.py
├─ anything_else.py

我正在尝试像这样训练/评估我的模型:

%run /content/drive/algorithm1/train.py

更新结束

问题在某些文件中,它使用../来引用父目录(例如:save_dir='../dir_A/dir_B/dir_C
但 colab 无法识别:

FileNotFoundError: [Errno 2] No such file or directory: '../dir_A/dir_B/dir_C/file.csv'

我知道我可以通过这样的更改来修复它:

save_dir='/content/drive/dir_D/dir_A/dir_B/dir_C/'

但这会花费太多时间,因为每次父目录(即dir_D)都会有所不同。而这个声明save_dir='../dir1/dir2 会有所不同(例如sys.path.append('../dir_E/')os.path.join('..', 'dir_F') 等。

有没有办法让 colab 识别 ../ 或更快地编辑它们?

【问题讨论】:

    标签: python-3.x google-colaboratory filepath


    【解决方案1】:

    好的,我明白了。我的尝试中有三个问题。
    首先,我试图像这样运行 python 脚本:

    %matplotlib inline
    %run my_python_file.py 
    

    现在它用!python 替换了%run 并且它起作用了

    第二个问题是,在每个文件中,我必须添加它以让解释器搜索正确的位置(在我的代码中,有一些模块位于上一级路径中):

    import sys
    sys.path.append('../')
    

    第三,我必须更改我试图运行的 python 文件旁边的目录,并且我直接寻址到该文件,所以我更改了:

    %run /content/drive/dir1/dir2/my_python_file.py
    

    os.chdir('/content/drive/dir1/dir2/')
    !python my_python_file.py
    

    我更新了问题以减少后面引用中的误解

    【讨论】:

      猜你喜欢
      • 2020-03-08
      • 1970-01-01
      • 2021-12-29
      • 2019-04-04
      • 2021-01-30
      • 1970-01-01
      • 1970-01-01
      • 2020-12-05
      • 2022-10-14
      相关资源
      最近更新 更多