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
模块来获取文件夹下的所有文件名或特定扩展名的文件名。掌握这些方法能够在处理文件的过程中更加方便地获取文件名信息,提高代码的效率。