关于Python中如何获取文件名的相关方法

比如说我有一个文件C:/Users/Lenovo/Desktop/test.py:

一、获取当前文件名

import os


print(__file__)
# 输出:C:/Users/Lenovo/Desktop/test.py

print(os.path.basename(__file__))
# 输出:test.py

二、获取文件名(后缀名分离)

import os
from pathlib import Path


file_name, extension = os.path.splitext(os.path.basename(__file__))
print(file_name, extension, sep='     ')
# 输出:test     .py

print(Path(__file__).stem)
# 输出:test
print(Path(__file__).suffix)
# 输出:.py
# 如果你想获得所有的后缀名,例如.tar.gz,那么使用.suffixes将会返回一个列表。例如:
print(Path('somedir/file.tar.gz').suffixs)

可以看到,os.path.splitext()方法可以返回一个元组,第一个参数是文件名,第二个参数是后缀名(带一个点);如果仅仅是想获得文件名(不含后缀),可以使用后一种方法。

事实上,在Python 3.4+以后,我们推荐使用pathlib这种方法来获得文件名(不含后缀)。

三、获取当前文件的所在路径

主要有两种方法:

  1. os.getcwd()
  2. os.path.dirname(os.path.realpath(__file__))

这两种方法的区别在于:
os.getcwd()获取的是当前最外层调用的脚本路径,而os.path.dirname(os.path.realpath(__file__))获取的是file所在脚本的路径

这篇博文讲得很仔细,可以学习一下。

四、获取当前文件的路径及文件名

# os.path.split(): 返回文件的路径和文件名
dirname, filename = os.path.split('somedir/test.py')
print(dirname)
print(filename)
# 输出:
# somedir
# test.py

你可能感兴趣的:(python)