Python(二十三):with语句与os模块


with语句可以自动管理上下文资源,不论什么原因跳出with块,都能确保文件正确的关闭,因此来达到释放资源的目的
例:

with open('a.txt','r') as file:
    print(file.read())#不用写file.close()语句,with语句会自动关闭文件

os模块(python自带的模块)

  • os模块是python内置的与操作系统功能和文件系统相关的模块,该模块中的语句的执行结果通常与操作系统有关,在不同的操作系统上运行,得到的结果可能不一样。
  • os模块与os.path模块用于对目录或文件进行操作

例:

import os
os.system('notepad.ex')#调用记事本
os.system('calc.exe')#调用计算器
os.startfile('C:\\Program Files\\tencent\\QQ\\Bin\\qq.exe')#直接调用可执行文件,括号内为文件地址。本次例为打开qq

os模块操作目录相关函数

  • getcwd():返回当前的工作目录

例:

import os
print(os.getcwd())

结果:

E:\Pyhton3.8Project

返回的是文件的位置)

  • listdir(path):返回指定路径下的文件和目录信息

例:

import os
lst=os.listdir('E:\Pyhton3.8Project')
print(lst)

结果:

[‘a.TXT’, ‘text.py’, ‘冰墩墩.py’, ‘小猪佩奇.py’, ‘牵着她的手,慢慢走下去.py’]

请添加图片描述

  • mkdir(path[,mode]):创建目录

例:

import os
lst=os.listdir('E:\Pyhton3.8Project')
print(lst)
os.mkdir('newdir2')

结果:

请添加图片描述

创建了一个newdir2的文件夹

  • makedirs(path1/path2…):创建多级目录

例:

import os
os.makedirs('E:\Pyhton3.8Project\A\B\C')

结果:
请添加图片描述

创建了一个A/B/C的三级目录

  • rmdir(path):删除目录

例:

import os
os.rmdir('E:\Pyhton3.8Project\A\B\C')

结果:
请添加图片描述

删除了文件C

  • removedirs(path1/path2…):删除多级目录
  • chdir(path):将path设置为当前工作目录

os.path模块操作目录相关函数

  • abspath(path):用于获取文件或目录的绝对路径

例:

import os.path
print(os.path.abspath('a.txt'))

结果;

E:\Pyhton3.8Project\a.txt

(结果为文件的路径)

  • exists(path):用于判断文件或目录是否存在,如果存在返回True,不存在返回

例:

import os.path
print(os.path.exists('a.txt'))

结果:

True

  • join(path,name):将目录与目录或者文件名拼接起来

例:

import os.path
print(os.path.join('E:\\Pythoan','a.txt'))

结果:

E:\Pythoan\a.txt

(将两个文件名拼在一起)

  • split():拆问文件名

例:

import os.path
print(os.path.split('E:\\Pythoan\\a.txt'))

结果:

(‘E:\Pythoan’, ‘a.txt’)

(将文件名拆分)

  • splitext():分离文件名和扩展名

例:

import os.path
print(os.path.splitext('a.txt'))

结果:

(‘a’, ‘.txt’)

  • basename(path):从一个目录中提取文件名

例:

import os.path
print(os.path.basename('E:\\vipppp\\chap\\hhh'))

结果:

hhh

(最后一级文件名)

  • dirname(path):从一个路径中提取文件路径,不包括文件名

例:

import os.path
print(os.path.basename('E:\\vipppp\\chap\\hhh'))

结果:

E:\vipppp\chap

  • isdir(path):用于判断是否为路径

两个例子

打印后缀为.py的文件
代码:

import os
path=os.getcwd()
lst=os.listdir(path)
for filename in lst:
    if filename.endswith('.py'):#endswith用于文件扩展名是否为.py文件
        print(filename)

结果:

text.py

冰墩墩.py

小猪佩奇.py

牵着她的手,慢慢走下去.py

例二:遍历文件夹

import os
path=os.getcwd()
lst_files=os.walk(path)#迭代器对象
for dirpath,dirname,filename in lst_files: #遍历时是一层一层遍历,第一层文件夹为E:\Pyhton3.8Project,第二层文件夹为b文件夹
    print(dirpath)#遍历文件路径
    print(dirname)#子目录
    print(filename)#文件夹名
    print('------------------------')

结果:

E:\Pyhton3.8Project

[‘b’]

[‘a.TXT’, ‘text.py’, ‘冰墩墩.py’, ‘小猪佩奇.py’, ‘牵着她的手,慢慢走下去.py’]


E:\Pyhton3.8Project\b

[]

[‘1.py’, ‘2.py’]


请添加图片描述

请添加图片描述

结果分析:先遍历第一层文件E:\Pyhton3.8Project,如何遍历出其文件夹,然后是子文件
接着遍历第二层文件夹b文件夹,b文件夹中没有子文件夹,然后遍历子文件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值