如何在 Python 中的不同机器上找到相同的文件夹?
How to find the same folder on different machine in Python?
我有以下文件夹结构:
demo
├── module1
│ └── demo.py
├── module2
└── somefile.txt
我希望能够从 demo.py
中找到 somefile.txt
,无论 demo.py
从何处启动。
我试过的是按以下方式使用 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
启动它,那么它什么都不打印。
我的最终目标是 运行 这段代码可以在任何 Python 的机器上运行,无论根 demo/
文件夹在系统中的什么位置。
试试这个:
import os
somefile_path = os.path.basename(os.getcwd()) + 'module2\' + 'somefile.txt'
获取运行代码正确位置的流行方法
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
的完整路径
我有以下文件夹结构:
demo
├── module1
│ └── demo.py
├── module2
└── somefile.txt
我希望能够从 demo.py
中找到 somefile.txt
,无论 demo.py
从何处启动。
我试过的是按以下方式使用 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
启动它,那么它什么都不打印。
我的最终目标是 运行 这段代码可以在任何 Python 的机器上运行,无论根 demo/
文件夹在系统中的什么位置。
试试这个:
import os
somefile_path = os.path.basename(os.getcwd()) + 'module2\' + 'somefile.txt'
获取运行代码正确位置的流行方法
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