【发布时间】:2017-05-16 16:00:34
【问题描述】:
目标:我正在尝试查找特定文件名的绝对路径。
场景:我的脚本在某个(伟大的伟大)父目录中执行,而我的文件位于同一个(伟大的...)父目录中的某个地方。
问题:
E:
├───Directory
│ └───Sub Directory
└───Grandparent Folder
├───Parent Directory
│ └───script.py
└───Other Parent Directory
└───MyFile.txt
伟大的父目录经常被移动。所以父目录的绝对路径是未知的。
-
脚本在伟大的父目录中移动了很多,并改变了该目录中的文件级别,所以我不能只使用
'../../..'来到达父目录。 我要查找的文件在伟大的父目录中移动了很多。
一旦我有了父目录的绝对路径,我就可以在os.walk() 周围找到我的文件。
尝试:我在下面的工作,但我不得不想象这是一个足够常见的问题,有一个我不知道的内置 os 命令。
import os
parent_folder = 'Grandparent Folder'
search_file = 'MyFile.txt'
# Get absolute path of grandparent directory.
current_path = os.getcwd()
parent_path = current_path.split(parent_folder)[0] + parent_folder
# os.walk() from grandparent down until file is found.
filepath= ''
for root, dirs, files in os.walk(parent_path):
for file in files:
if file == search_file:
filepath = '\\'.join([root, file])
【问题讨论】:
-
当前工作目录和脚本目录不必相同。您希望根据哪个进行搜索?
-
脚本目录
-
os.getcwd()返回工作目录,使用__file__获取脚本目录。
标签: python python-3.x file os.walk