在Python中,我们可以轻松地获取目录下的所有文件的文件名。这对于一些需要操作文件的任务非常有用,比如批量处理文件、文件备份等。
本文将介绍如何使用Python获取目录下所有文件的文件名,包括使用os模块和glob模块两种方法。同时,还将介绍如何使用递归方式获取多级目录下的文件名。
使用os模块获取目录下所有文件的文件名
os模块是Python中处理文件和目录的标准库,它提供了一系列操作文件和目录的函数。其中,os.listdir()函数可以用于获取目录下所有文件和目录的名称。
下面是使用os模块获取当前目录下所有文件的文件名的代码:
```python
import os
files = os.listdir('.')
for file in files:
if os.path.isfile(file):
print(file)
```
上述代码首先使用os.listdir('.')函数获取当前目录下所有文件和目录的名称,并将它们保存在一个列表中。然后,使用os.path.isfile(file)函数判断每个名称是否为文件,如果是文件,则打印文件名。
使用glob模块获取目录下所有文件的文件名
glob模块也是Python中处理文件和目录的标准库之一,它提供了一种更加简便的方式来获取目录下所有文件的文件名。
下面是使用glob模块获取当前目录下所有文件的文件名的代码:
```python
import glob
files = glob.glob('*')
for file in files:
if os.path.isfile(file):
print(file)
```
上述代码使用glob.glob('*')函数获取当前目录下所有文件的文件名,并将它们保存在一个列表中。然后,使用os.path.isfile(file)函数判断每个文件名是否为文件,如果是文件,则打印文件名。
使用递归方式获取多级目录下的文件名
如果目录下有多级子目录,我们可以使用递归方式获取所有文件的文件名。递归方式是一种自我调用的算法,它可以将一个问题分解成多个子问题,并通过递归调用自身来解决这些子问题。
下面是使用递归方式获取多级目录下所有文件的文件名的代码:
```python
import os
def get_file_names(path):
files = os.listdir(path)
for file in files:
if os.path.isfile(os.path.join(path, file)):
print(os.path.join(path, file))
elif os.path.isdir(os.path.join(path, file)):
get_file_names(os.path.join(path, file))
get_file_names('.')
```
上述代码首先定义了一个函数get_file_names(path),它接受一个路径作为参数。该函数首先使用os.listdir(path)函数获取路径下所有文件和目录的名称,并将它们保存在一个列表中。然后,使用os.path.isfile(os.path.join(path, file))函数判断每个名称是否为文件,如果是文件,则打印文件名;否则,使用os.path.isdir(os.path.join(path, file))函数判断每个名称是否为目录,如果是目录,则递归调用get_file_names函数继续获取该目录下所有文件的文件名。
客服热线:0731-85127885
违法和不良信息举报
举报电话:0731-85127885 举报邮箱:tousu@csai.cn
优草派 版权所有 © 2024