Python获取指定文件夹下的所有文件名
引言
在编程过程中,我们经常需要获取指定文件夹下的所有文件名。通常我们会使用os
模块来实现这个功能,但是本文将介绍一种不使用os
模块的方法来获取指定文件夹下的所有文件名。
流程图
flowchart TD
A[开始] --> B(导入必要的模块)
B --> C(定义一个函数get_files)
C --> D(接受一个文件夹路径参数)
D --> E(初始化一个空列表)
E --> F(遍历文件夹中的所有文件和子文件夹)
F --> G(对于每个文件或者子文件夹)
G --> H(如果是文件)
H --> I(将文件名加入列表)
G --> J(否则)
J --> K(递归调用get_files函数)
K --> F
F --> L(返回文件名列表)
L --> M(打印文件名列表)
M --> N[结束]
类图
classDiagram
class Developer{
+get_files(folder_path: str) -> List[str]
}
代码实现
首先,我们需要导入必要的模块来实现我们的功能。本文中只需要使用os
模块来判断文件类型。
import os
接下来,我们定义一个函数get_files
,这个函数接受一个文件夹路径作为参数,并返回一个包含所有文件名的列表。
def get_files(folder_path):
file_names = [] # 初始化一个空列表
for item in os.listdir(folder_path): # 遍历文件夹中的所有文件和子文件夹
if os.path.isfile(os.path.join(folder_path, item)): # 如果是文件
file_names.append(item) # 将文件名加入列表
else: # 否则
file_names.extend(get_files(os.path.join(folder_path, item))) # 递归调用get_files函数
return file_names # 返回文件名列表
最后,我们可以在main
函数中调用get_files
函数,并打印出结果。
def main():
folder_path = "/path/to/folder" # 指定文件夹路径
file_names = get_files(folder_path) # 调用get_files函数
print(file_names) # 打印文件名列表
if __name__ == "__main__":
main()
代码解析
导入必要的模块
我们需要使用os
模块来判断文件类型,所以需要导入这个模块。
import os
定义函数get_files
这个函数接受一个文件夹路径作为参数,并返回一个包含所有文件名的列表。
def get_files(folder_path):
file_names = [] # 初始化一个空列表
遍历文件夹中的所有文件和子文件夹
我们使用os.listdir
函数来遍历文件夹中的所有文件和子文件夹。
for item in os.listdir(folder_path): # 遍历文件夹中的所有文件和子文件夹
判断文件类型
我们使用os.path.isfile
函数来判断一个路径是否为文件。
if os.path.isfile(os.path.join(folder_path, item)): # 如果是文件
将文件名加入列表
如果是文件,我们将文件名加入列表。
file_names.append(item) # 将文件名加入列表
递归调用自身
如果是子文件夹,我们递归调用get_files
函数来获取子文件夹下的所有文件名,并将结果与当前文件名列表合并。
else: # 否则
file_names.extend(get_files(os.path.join(folder_path, item))) # 递归调用get_files函数
返回文件名列表
最后,我们返回文件名列表。
return file_names # 返回文件名列表
调用get_files
函数并打印结果
在main
函数中,我们可以调用get_files
函数,并打印出结果。
def main():
folder_path = "/path/to/folder" # 指定文件夹路径
file_names = get_files