仅查找特定目录的 os.walk 的所有文件
Find all files with os.walk for a specific directory only
目录树如下所示:
DirA--
|
-- Map
|
-- Fig--
|
--file.png
|
-- Data--
|
-- file.xls
|
-- file.csv
有多个目录,包含多个文件。我想获取仅在 Data
目录中找到的那些文件的完整路径。
这是我目前拥有的:
dirlist = []
thisdir = os.getcwd()
for root, dirs, files in os.walk(thisdir):
for d in dirs:
if d.startswith("Data"):
dirlist.append(os.path.join(root, d))
要仅获取数据目录文件,您需要组合 root
和 files
。
for root, dirs, files in os.walk(thisdir):
if "Data" in root: # try using in instead of startswith
for f in files:
dirlist.append(os.path.join(root, f))
尝试使用 'dirs'
在 'dirs' 的情况下,您无权访问这些文件。例如,当 root
为 DirA
时,您的 dirs
列表中将有 --Data--
,但您将无法访问 --Data--
文件夹中的文件。
import os
from os import listdir
from os.path import isfile, join
rootdir = os.getcwd()
folder_name = "Data"
def get_files(path):
onlyfiles = [f for f in listdir(path) if isfile(join(path, f))]
return onlyfiles
def get_search_files(start_path, folder_name):
for subdir, dirs, files in start_path:
for x in dirs:
if x == folder_name:
data_folder_path = os.path.join(subdir, x)
dirlist = get_files(data_folder_path)
return dirlist
dirlist = get_search_files(os.walk(rootdir), folder_name)
目录树如下所示:
DirA--
|
-- Map
|
-- Fig--
|
--file.png
|
-- Data--
|
-- file.xls
|
-- file.csv
有多个目录,包含多个文件。我想获取仅在 Data
目录中找到的那些文件的完整路径。
这是我目前拥有的:
dirlist = []
thisdir = os.getcwd()
for root, dirs, files in os.walk(thisdir):
for d in dirs:
if d.startswith("Data"):
dirlist.append(os.path.join(root, d))
要仅获取数据目录文件,您需要组合 root
和 files
。
for root, dirs, files in os.walk(thisdir):
if "Data" in root: # try using in instead of startswith
for f in files:
dirlist.append(os.path.join(root, f))
尝试使用 'dirs'
在 'dirs' 的情况下,您无权访问这些文件。例如,当 root
为 DirA
时,您的 dirs
列表中将有 --Data--
,但您将无法访问 --Data--
文件夹中的文件。
import os
from os import listdir
from os.path import isfile, join
rootdir = os.getcwd()
folder_name = "Data"
def get_files(path):
onlyfiles = [f for f in listdir(path) if isfile(join(path, f))]
return onlyfiles
def get_search_files(start_path, folder_name):
for subdir, dirs, files in start_path:
for x in dirs:
if x == folder_name:
data_folder_path = os.path.join(subdir, x)
dirlist = get_files(data_folder_path)
return dirlist
dirlist = get_search_files(os.walk(rootdir), folder_name)