当前位置:优草派 > 问答 > Python问答

python获取目录下所有文件的文件名

标签: Python  Python开发  Python  作者: wolf2009

回答:

在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函数继续获取该目录下所有文件的文件名。

TOP 10
  • 周排行
  • 月排行