关注我们更多精彩等你发现!
python中的os模块和os.path模块提供对文件级和目录级的操作方法,当我们需要获取当前目录下的文件名、子目录和子目录下的文件名,用os模块就很方便了
获取绝对路径os.path.abspath(path)
返回路径 path 的绝对路径(标准化的)。在大多数平台上,这等同于用 normpath(join(os.getcwd(), path)) 的方式调用 normpath() 函数
import os
os.path.abspath('E:/2021作品')
运行结果:
'E:\\2021作品'
获取文件名
os.path.basename(path)
返回路径 path 的基本名称。这是将 path 传入函数 split() 之后,返回的一对值中的第二个元素。请注意,此函数的结果与Unix basename 程序不同。basename 在 '/foo/bar/' 上返回 'bar',而 basename() 函数返回一个空字符串 ('')
# 获取带后缀的文件名
a = os.path.basename('E:/2021作品/test.csv')
print('带后缀:',a)
# #获取不带后缀的文件名
b=a.split('.')[0]
print('不带后缀:',b)
运行结果:
带后缀:test.csv
不带后缀:test
按指定方式提取文件名
os.path.splitext(path)
将路径 path 拆分为一对,即 (root, ext),使 root + ext == path,其中 ext 为空或以英文句点开头,且最多包含一个句点。路径前的句点将被忽略,例如 splitext('.cshrc') 返回 ('.cshrc', '')
filepath2="D:/data/outputs/测试.jpg.on.jpg"
c=os.path.splitext(filepath2)[0]#不带后缀的路径文件名
print(c)
d=os.path.splitext(filepath2)[-1]#获取文件后缀
print(d)
e= os.path.basename(filepath2)#获取带后缀的文件名
print(e)
运行结果:
D:/data/outputs/测试.jpg.on
.jpg
测试.jpg.on.jpg
获取指定目录下的所有子目录和文件名(包括子目录)的方法
例如名为春运的文件夹下有二十多个文件和一个文件夹(里面包含一个文件)如图:
假设需要获取该文件夹下的所有文件名和子目录名及子目录下的文件名,方法代码如下:
import os
def file_name(file_dir):
for root,dirs,files in os.walk(file_dir):
print('目录路径 :',root)
print('子目录名称 :',dirs)
print('目录下的文件:',files)
print("\n")
file_name('E:/春运')
运行结果:
end
扫码关注最新动态
数据分析之渔