Python如何获取文件名

Python如何获取文件名

Python如何获取文件名

在Python中,我们经常需要对文件进行操作,其中获取文件名是一项常见的需求。无论是读取文件、写入文件还是删除文件,获取文件名都是一个基本的操作。本文将详细介绍Python中不同场景下获取文件名的方法。

1. 获取完整文件名

获取完整文件名是指获取包括文件扩展名在内的整个文件名。在Python中,我们可以使用os.path模块的basename函数来实现。

import os

file_path = "C:/Users/username/Documents/example.txt"
file_name = os.path.basename(file_path)

print(file_name)

输出:

example.txt

2. 获取文件名(不包括扩展名)

有时候我们只需要获取文件名,并且不包括文件的扩展名。可以使用os.path模块的splitext函数来实现。

import os

file_path = "C:/Users/username/Documents/example.txt"
file_name = os.path.splitext(os.path.basename(file_path))[0]

print(file_name)

输出:

example

3. 获取文件的扩展名

如果我们只需要获取文件的扩展名,可以使用os.path模块的splitext函数来实现。

import os

file_path = "C:/Users/username/Documents/example.txt"
file_extension = os.path.splitext(file_path)[1]

print(file_extension)

输出:

.txt

4. 获取文件所在的目录路径

有时候我们需要获取文件所在目录的路径,可以使用os.path模块的dirname函数来实现。

import os

file_path = "C:/Users/username/Documents/example.txt"
directory_path = os.path.dirname(file_path)

print(directory_path)

输出:

C:/Users/username/Documents

5. 获取文件的绝对路径

如果文件不是在当前工作目录下,我们可能需要获取文件的绝对路径。可以使用os.path模块的abspath函数来实现。

import os

file_name = "example.txt"
file_path = os.path.abspath(file_name)

print(file_path)

输出:

C:/Users/username/Documents/example.txt

6. 获取当前脚本的文件名

在某些情况下,我们需要获取当前脚本的文件名,可以使用__file__变量来获取。

import os

current_script = os.path.basename(__file__)

print(current_script)

输出:

script.py

7. 获取文件夹下的所有文件名

有时候我们需要获取文件夹下的所有文件名,并遍历对它们进行操作。可以使用os模块的listdir函数结合循环来实现。

import os

directory_path = "C:/Users/username/Documents"

file_names = [f for f in os.listdir(directory_path) if os.path.isfile(os.path.join(directory_path, f))]

for file_name in file_names:
    print(file_name)

输出:

example1.txt
example2.txt
example3.txt

8. 获取特定扩展名的文件名

有时候我们需要获取文件夹下特定扩展名的文件名,可以使用os模块的listdir函数结合条件判断来实现。

import os

directory_path = "C:/Users/username/Documents"
extension = ".txt"

file_names = [f for f in os.listdir(directory_path) if os.path.isfile(os.path.join(directory_path, f)) and f.endswith(extension)]

for file_name in file_names:
    print(file_name)

输出:

example1.txt
example2.txt
example3.txt

9. 使用glob模块获取文件名

另一种获取特定扩展名的文件名的方法是使用glob模块。glob模块是Python自带的文件模式匹配工具。

import glob

directory_path = "C:/Users/username/Documents"
extension = "*.txt"

file_names = glob.glob(os.path.join(directory_path, extension))

for file_name in file_names:
    print(os.path.basename(file_name))

输出:

example1.txt
example2.txt
example3.txt

总结

通过本文的介绍,我们了解了不同场景下获取文件名的方法。无论是获取完整文件名、文件名(不包括扩展名)、文件的扩展名、文件所在的目录路径,还是获取文件的绝对路径,我们都可以使用os.path模块的相应函数来实现。还可以利用__file__变量获取当前脚本的文件名,或者使用os模块的listdir函数、glob模块来获取文件夹下的所有文件名或特定扩展名的文件名。掌握这些方法能够在处理文件的过程中更加方便地获取文件名信息,提高代码的效率。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程