1、文件的读写操作函数
2、操作系统相关函数
# name: pshdhx
# time:2021/2/14 10:49
# 文件的读写操作
# file=open('a.txt','r')
# # 如果a.txt中有汉字,则编码报错,除非把a.txt编码格式改为GBK
# print(file.readlines())
# file.close()
# 常用的文件打开模式
# r:以只读方式打开文件,文件的指针将会放在文件的开头
# w:以只写的方式打开文件,如果文件不存在则创建,如果文件存在,则覆盖原有内容,文件指针在文件的开头
# a:以追加的方式打开文件,如果文件不存在则创建,文件指针在文件的开头,如果文件存在,则在文件的末尾追加内容,文件指针在源文件末尾
# b:以二进制方式打开文件,不能单独使用,需要与其他模式一起使用,rb,wb
# +:以读写方式打开文件,不能单独使用,需要与其他模式一起使用,a+
# 常用的文件类型
# 按照文件中的数据格式,文件分为以下两类
# 文本文件:存储的是普通的字符文本,默认是unicode字符集,可使用记事本程序打开
# 二进制文件:把数据内容用字节进行存储,无法用记事本打开,必须使用专用的软件打开:举例,MP3音频文件,jpg图片,doc文档等
# file=open('a.txt','a+')
# file.write('python')
# file.close()
# src_file=open('logo.png','rb') #打开源文件
# target_file=open('copylogo.png','rb') #打开目标文件
# target_file.write(src_file.read()) #源文件读文件到目标文件
# target_file.close() #关闭
# src_file.close() #关闭
# 文件对象的常用方法
# read([size]) 从文件中读取size个字节或字符的内容返回,若省略size,则读取到文件末尾=》一次性读取文件所有内容
# readline() 从文本文件中读取一行内容
# readlines() 把文本文件中的每一行都作为独立的字符串对象,并将这些对象放入列表返回
# write(str) 将字符串str内容写入到文件
# writelines(s_list) 将字符串列表s_list写入到文本文件,并且不添加换行符号
# seek(offset,[whence])
# 把文件指针移动到新的位置,offset表示相对于whence的位置:
# offset:为正则往结束方向移动,为负数则往开始方向移动
# whence:0,代表从开始位置开始计数,1代表从当前位置开始计算,2从文件末尾位置开始计算
# tell() 返回文件指针的当前位置
# flush() 把缓冲区的内容写入到文件,但不关闭文件
# close() 把缓冲区的内容写入到文件,同时关闭文件,释放文件对象相关资源
# with语句,上下文管理器
# with语句可以自动管理上下文资源,不论什么原因跳出with块,都能确保文件正确的关闭,以此来达到释放资源的目的
with open('a.txt','r') as file:
print(file.read())
# 自动关闭,不用手动关闭
# 该类实现了特殊的方法enter和exit
class MyContentMgr(object):
def __enter__(self):
print('enter方法被执行了')
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print('exit方法被执行了')
def show(self):
print('show方法被执行了')
with MyContentMgr() as file:
file.show()
# 所以以上的代码可以精简为
# with open('logo.png',rb) as src_file:
# with open('copy2logo.png','wb') as target_file:
# target_file.write(src_file.read())
# 目录的操作 os模块与操作系统相关的模块
import os
os.system('notepad.exe') #打开记事本操作
os.system('calc.exe') #打开计算器
# 直接调用可执行文件
os.startfile('文件位置')
# os模块操作目录相关函数
# getcwd() : 返回当前的工作目录
# listdir(path) : 返回指定路径下的文件和目录信息
# mkdir(path,[,mode]) 创建目录
# makedirs(path1/path2/...[,mode]) 创建多级目录
# rmdir(path) 删除目录
# removedirs(path1/path2...) 删除多级目录
# chdir(path) 将path设置为当前的工作目录
os.path模块操作目录相关函数
abspath(path) : 用于获取文件或目录的绝对路径
exists(path) :
join(path,name) : 将目录与目录或者文件名拼接起来
splitext() : 分离文件名和扩展名
basename(path) : 从一个目录中提取文件名
dirname(path) : 从一个目录中提取文件路径,不包括文件名
isdir(path) : 用于判断是否为路径