【问题标题】:How to find the same folder on different machine in Python?如何在 Python 的不同机器上找到相同的文件夹?
【发布时间】:2021-08-08 04:29:45
【问题描述】:

我有以下文件夹结构:

demo
├── module1
│   └── demo.py     
├── module2
    └── somefile.txt

无论demo.py从哪里启动,我都希望能够从demo.py找到somefile.txt

我尝试过以下列方式使用 os.walk():

import os

if __name__ == "__main__":
    for root, subdir, files in os.walk("module2", False):
        for file in files:
            print(os.path.join(root, file))

只有当我在 demo/ 文件夹中时启动 demo.py 才能找到它。如果我从demo/module1 启动它,那么它什么也不会打印。

我的最终目标是无论demo/ 根文件夹在系统中的哪个位置,都能够在任何使用Python 的机器上运行这段代码。

【问题讨论】:

  • 如果demo/可以在任何地方,demo.py也可以在任何地方,那么你必须检查系统中的所有文件夹。
  • 可能在demo.py 内,您应该获取__file__ 以获取其位置并使用它来获取到module2 的路径

标签: python python-3.x directory directory-structure


【解决方案1】:

试试这个:

import os
somefile_path = os.path.basename(os.getcwd()) + 'module2\\' + 'somefile.txt'

【讨论】:

    【解决方案2】:

    获取运行代码正确位置的常用方法

    import os
    
    FOLDER = os.path.abspath(os.path.basename(__file__))
    

    如果你在demo.py 中使用它,那么你应该总是得到/full/path/to/module1

    然后你就可以了

    path = os.path.join(FOLDER, "..", "module2", "somefile.txt")
    

    获取somefile.txt的完整路径

    【讨论】:

      猜你喜欢
      • 2019-11-20
      • 1970-01-01
      • 1970-01-01
      • 2016-11-05
      • 2016-11-08
      • 1970-01-01
      • 2014-09-03
      • 2016-10-15
      • 1970-01-01
      相关资源
      最近更新 更多