在目录 python 中搜索所有同名文件
Search all files with same name in a directory python
我有一个问题:
我需要获取目录中文件的路径,我有一个包含其他文件夹和其他文件夹等的文件夹....并且每个文件夹都包含一个文件 "tv.sas7bdat" 我需要获取该文件的每个路径。
谢谢!!!
可以试试下面的代码,其中PATH代表父目录
import os
def getAlldirInDiGui(path,resultList):
filesList=os.listdir(path)
for fileName in filesList:
fileAbpath=os.path.join(path,fileName)
if os.path.isdir(fileAbpath):
getAlldirInDiGui(fileAbpath,resultList)
else:
if fileName=='tv.sas7bdat':
resultList.append(fileAbpath)
resultList = []
PATH = ""
getAlldirInDiGui(PATH,resultList)
如果我解决了你的问题,你可以使用 Python 的 os.walk 函数实现你的目标,如下所示:
import os
for root, dirs, files in os.walk("<starting folder here>", topdown=False):
for name in files:
if name == "tv.sas7bdat":
print(os.path.join(root, name))
p.s:关于你的问题的评论,下次请在你的问题中提供尽可能多的细节并提供你尝试的代码,见asking guidelines
希望下面的完整代码对您有用:
import glob
initial_path = "c:\<intital folder location>"
files = [file for file in glob.glob(initial_path+ "tv.sas7bdat" , recursive=True)]
for f in files:
print(f)
您可以使用 os
python 包结合递归函数来搜索某个目录
import os
from os.path import isfile, join, isdir
def get_files_path(directory, paths):
for item in os.listdir(directory):
if isfile(join(directory, item)) and item == "tv.sas7bda":
paths.append(directory + item)
elif isdir(directory+item):
get_files_path(directory + item, paths)
return paths
directory_to_search = "./"
get_files_path(directory_to_search , [])
您可以使用os.walk()
import os
for root, dirs, files in os.walk(os.getcwd()):
for f in files:
if f.find("tv.sas7bdat")>=0:
print(root,f)
我有一个问题: 我需要获取目录中文件的路径,我有一个包含其他文件夹和其他文件夹等的文件夹....并且每个文件夹都包含一个文件 "tv.sas7bdat" 我需要获取该文件的每个路径。 谢谢!!!
可以试试下面的代码,其中PATH代表父目录
import os
def getAlldirInDiGui(path,resultList):
filesList=os.listdir(path)
for fileName in filesList:
fileAbpath=os.path.join(path,fileName)
if os.path.isdir(fileAbpath):
getAlldirInDiGui(fileAbpath,resultList)
else:
if fileName=='tv.sas7bdat':
resultList.append(fileAbpath)
resultList = []
PATH = ""
getAlldirInDiGui(PATH,resultList)
如果我解决了你的问题,你可以使用 Python 的 os.walk 函数实现你的目标,如下所示:
import os
for root, dirs, files in os.walk("<starting folder here>", topdown=False):
for name in files:
if name == "tv.sas7bdat":
print(os.path.join(root, name))
p.s:关于你的问题的评论,下次请在你的问题中提供尽可能多的细节并提供你尝试的代码,见asking guidelines
希望下面的完整代码对您有用:
import glob
initial_path = "c:\<intital folder location>"
files = [file for file in glob.glob(initial_path+ "tv.sas7bdat" , recursive=True)]
for f in files:
print(f)
您可以使用 os
python 包结合递归函数来搜索某个目录
import os
from os.path import isfile, join, isdir
def get_files_path(directory, paths):
for item in os.listdir(directory):
if isfile(join(directory, item)) and item == "tv.sas7bda":
paths.append(directory + item)
elif isdir(directory+item):
get_files_path(directory + item, paths)
return paths
directory_to_search = "./"
get_files_path(directory_to_search , [])
您可以使用os.walk()
import os
for root, dirs, files in os.walk(os.getcwd()):
for f in files:
if f.find("tv.sas7bdat")>=0:
print(root,f)