【问题标题】:How to reference files that are in other folders in python?如何引用python中其他文件夹中的文件?
【发布时间】:2022-01-11 16:35:47
【问题描述】:

我正在尝试更多地了解路径在 python 中的工作原理,但遇到了下一个问题。

当我尝试调用完整路径时,我使用以下 ->“./Folder/archive2”,当我的 .py 文件与包含此“archive2”的文件夹位于同一目录中时,这非常有效,但是让我们说:

    - Archive1 is in Folder1 (both archives are .py files)
    - Archive2 is in Folder2
    - Folder1 and Folder2 are in "RandomDirectory"
    

如果 Archive2 在同一个 RandomDirectory 但在不同的文件夹中,我如何获取 Archive1 中的路径。当然,复制路径不是一种选择,因为我希望它可以在任何计算机上工作,所以像“./Folder/archive”这样的东西会很棒,所以如果我在其他计算机上运行 .py 它将正常工作。

感谢阅读。

【问题讨论】:

  • 返回目录使用../在你的情况下../Folder2/Archive2
  • 要在 path 中找到特定文件,您可以使用 os 模块 os.listdir(path) 并搜索它。

标签: python python-3.x path


【解决方案1】:

使用.. 引用当前目录的父目录。

如果你的工作目录是Archive1,那么:

  • .. 指的是Folder1
  • ../.. 指的是RandomDirectory
  • ../../Folder2 指的是RandomDirectory/Folder2
  • ../../Folder2/Archive2 指的是RandomDirectory/Folder2/Archive2

【讨论】:

    【解决方案2】:

    如果你有这样的结构:

    Randomdirectory
    ├── Folder1
    │   └── Archive1.py
    └── Folder2
        └── Archive2.py
    
    

    您可以像这样从Archive1.py 访问Archive2.py

    # code in Archive1.py
    from pathlib import Path
    
    print(Path('../Folder2/Archive2.py').exists())
    

    【讨论】:

      【解决方案3】:

      一般你可以像这样使用os库:

      import os.path as pt
      
      archive2_path = pt.join(pt.split(pt.dirname(pt.abspath(__file__)))[0], 'Folder2/Archive2.py')
      

      在这种情况下,archive2_path 是 Archive2 的绝对路径。

      【讨论】:

        猜你喜欢
        • 2018-08-01
        • 2019-12-12
        • 1970-01-01
        • 2022-01-10
        • 2015-11-13
        • 1970-01-01
        • 2021-05-17
        • 2012-08-17
        • 1970-01-01
        相关资源
        最近更新 更多