Python 返回文本文件路径
如果程序找到某个文件,我希望返回该文件的路径,但我希望它继续循环(或递归地重复)程序,直到检查完所有文件Python 返回文本文件路径,python,recursion,path,Python,Recursion,Path,如果程序找到某个文件,我希望返回该文件的路径,但我希望它继续循环(或递归地重复)程序,直到检查完所有文件 def findAll(fname, path): for item in os.listdir(path): n = os.path.join(path, item) try: findAll(n, fname) except: if item == fname: print(os.idontknow(item
def findAll(fname, path):
for item in os.listdir(path):
n = os.path.join(path, item)
try:
findAll(n, fname)
except:
if item == fname:
print(os.idontknow(item))
所以我在调用路径时遇到了问题,现在我遇到了
os.idontknow(item)
作为占位者
输入为:
findAll('fileA.txt', 'testpath')
输出为:
['testpat\\fileA.txt', 'testpath\\folder1\\folder11\\fileA.txt','testpath\\folder2\\fileA.txt']
也许是这样的
import os
path = "path/to/your/dir"
for (path, dirs, files) in os.walk(path):
print files
根据我上面的评论,下面是一个示例,它将从当前目录开始,搜索所有子目录,查找与
fname
匹配的文件:
import os
# path is your starting point - everything under it will be searched
path = os.getcwd()
fname = 'file1.txt'
my_files = []
# Start iterating, and anytime we see a file that matches fname,
# add to our list
for root, dirs, files in os.walk(path):
for name in files:
if name == fname:
# root here is the path to the file
my_files.append(os.path.join(root, name))
print my_files
或者作为一种功能(更适合您的情况:):
你看过《操作系统漫游》吗?它是一个目录结构,应该能够处理这种情况,但我只从基本文件和我想要查找的文本文件开始。不是整条路。我想返回整个路径。
import os
def findAll(fname, start_dir=os.getcwd()):
my_files = []
for root, dirs, files in os.walk(start_dir):
for name in files:
if name == fname:
my_files.append(os.path.join(root, name))
return my_files
print findAll('file1.txt')
print findAll('file1.txt', '/some/other/starting/directory')