优草派  >   Python

python获取指定目录下所有文件名

杨志强            来源:优草派

在Python中,获取指定目录下的所有文件名是一个非常常见的需求。无论是进行文件操作,还是进行数据处理,都需要先获取到指定目录下的所有文件名,才能进行后续的操作。

本文将从多个角度分析Python获取指定目录下所有文件名的方法,包括使用os模块、使用glob模块、使用os.walk()方法以及使用pathlib模块。同时,还将介绍如何根据文件名的后缀名进行筛选、如何去除文件名中的路径以及如何获取文件创建时间等操作。

python获取指定目录下所有文件名

使用os模块获取指定目录下所有文件名

os模块是Python中用于进行操作系统相关操作的模块,其中包括获取文件名、路径、文件大小、修改时间等操作。因此,使用os模块可以方便地获取指定目录下的所有文件名。

具体方法如下:

```

import os

dir_path = "/path/to/directory/"

file_names = os.listdir(dir_path)

for file_name in file_names:

print(file_name)

```

其中,os.listdir()方法可以获取指定目录下的所有文件名,并将其以列表的形式返回。通过遍历这个列表,就可以获取到每个文件的文件名。

使用glob模块获取指定目录下所有文件名

glob模块提供了一种更加灵活的方法来获取指定目录下的文件名。它支持通配符匹配,可以根据文件名的后缀名进行筛选。

具体方法如下:

```

import glob

dir_path = "/path/to/directory/"

file_names = glob.glob(dir_path + "*.txt")

for file_name in file_names:

print(file_name)

```

其中,glob.glob()方法可以根据通配符匹配获取指定目录下的所有符合条件的文件名,并将其以列表的形式返回。通过遍历这个列表,就可以获取到每个文件的文件名。

使用os.walk()方法获取指定目录下所有文件名

os.walk()方法可以遍历指定目录下的所有文件和子目录,并返回每个文件的路径和文件名。因此,使用os.walk()方法可以获取指定目录下的所有文件名。

具体方法如下:

```

import os

dir_path = "/path/to/directory/"

for root, dirs, files in os.walk(dir_path):

for file_name in files:

print(os.path.join(root, file_name))

```

其中,os.walk()方法返回一个元组,包括当前目录的路径、子目录列表和文件名列表。通过遍历这个元组,就可以获取到每个文件的路径和文件名。

使用pathlib模块获取指定目录下所有文件名

pathlib模块是Python 3.4及以上版本中新增的模块,用于进行路径相关操作。它提供了一种更加面向对象的方式来获取指定目录下的文件名。

具体方法如下:

```

import pathlib

dir_path = pathlib.Path("/path/to/directory/")

for file_path in dir_path.glob("*"):

print(file_path.name)

```

其中,pathlib.Path()方法将指定的字符串路径转换为Path对象。Path对象有一个glob()方法,用于获取指定目录下的所有文件名。通过遍历这个Path对象,就可以获取到每个文件的文件名。

根据文件后缀名进行筛选

如果只需要获取指定后缀名的文件名,则可以在以上方法的基础上,加入筛选条件。

具体方法如下:

```

import os

dir_path = "/path/to/directory/"

file_names = [file_name for file_name in os.listdir(dir_path) if file_name.endswith(".txt")]

for file_name in file_names:

print(file_name)

```

其中,使用列表推导式和endswith()方法可以筛选出符合条件的文件名。

去除文件名中的路径

如果只需要获取文件名,而不需要路径,则可以使用os.path.basename()方法去除路径。

具体方法如下:

```

import os

dir_path = "/path/to/directory/"

file_names = os.listdir(dir_path)

for file_name in file_names:

print(os.path.basename(file_name))

```

其中,os.path.basename()方法可以去除文件名中的路径,只返回文件名。

获取文件创建时间

如果需要获取文件的创建时间,则可以使用os.path.getctime()方法。

具体方法如下:

```

import os

dir_path = "/path/to/directory/"

file_names = os.listdir(dir_path)

for file_name in file_names:

file_path = os.path.join(dir_path, file_name)

create_time = os.path.getctime(file_path)

print(file_name, create_time)

```

其中,os.path.getctime()方法可以获取文件的创建时间,返回一个时间戳。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行