文件的作用:就是把一些内容存储起来,下次直接使用
打开、关闭、读、写、操作、复制
文件的分类:
文本文件:基于字符串编码的文件,常见的编码有ASCll编码,UNICODE编码等等
二进制文件:基于值编码的文件,自定义编码
文件的基本操作
1.打开
2. 读、写
3. 关闭
在python,使用open()函数,可以打开一个已经存在的文件,或者创建一个新文件
f=open(name,mode) name是要打开目标文件名的字符串 model是设置打开文件的访问模式
f是open函数的对象
# f=open('ziyi.text') #相对路径
f=open(r'C:\Users\Administrator\PycharmProjects\untitled\单继承.py') #绝对路径
print(f)
#打印文件对象
# f.closed:如果返回true文件已经被关闭,否则返回false
# f.mode:返回被打开文件的访问模式
# f.name:返回文件的名称
print(f.closed) #如果返回true文件已经被关闭,否则返回false
print(f.mode) #打印打开文件的访问模式
print(f.name) #打印文件名称
# 文件对象.read() 读取
# print(f.read()) #不写从参数就是获取所有的字节
# print(f.read(3)) #写了就要按写的字节来读取
# 文件对象.close() 关闭
f.close()
print(f.closed)
# 文件对象.write() 写
# 访问模式对写入的影响
# r:如果文件存在就会报错,不支持写入的操作,表示只读 r+可以读写 rb打开二进制 rb+打开二进制还可以读写
f=open('ziyi.text','r')
print(f.read())
print(f.readline()) #每次读取一行
print(f.readlines()) #一次吧所有都读取出来,打印出来是个列表
# f.write('hello') #不能写
f.close()
#w:写入,如果文件存在就对文件进行写的操作,写的时候会覆盖已有的内容 w+可以读写
f=open('ziyi.text','w')
f.write('hello') #会覆盖
# print(f.read()) #不能读
f.close()
#a:追加,文件不存在就会新建,文件存在就会在原有的内容新增新的内容
f=open('ziyi.text','a')
f.write('hello') #会覆盖
# print(f.read()) #不能读
f.close()
# b 二进制模式(可以和其他的模式组合)
# + 读写模式(可以和其他的模式组合)
# seek()作用:用来移动文件指针
# # 文件对象.seek(偏移量,起始位置)
# # 0:文件开头 1.当前位置 2.文件结尾
f=open('ziyi.text','a+')
f.seek(0,0) #把指针移动到文件开头
print(f.read())
f.close()
f=open('ziyi.text','r')
try:
f.write('233') # 报错
finally:
f.close() # 关闭这个代码不管怎么都会执行
# with表达式 不需要写f.close() 因为表达式自带这个功能
# 读取中文遇到错误:1.忽略 errors='ignore'2.设置编码encoding='utf-8'
with open('ziyi.text','r',errors='ignore' ,encoding='utf-8') as f:
f.write('23')
3.目录常用操作
OS模块是一个Python的系统编程的操作模块,可以处理文件和目录这些我们日常手动需要做的操作
import os
# rename(src,dst):重命名文件的目录
# os.rename('原名','新名')
# os.rename('ziyi.text','text.text')
# os.remove(path):删除路径为path的文件
# os.remove('text01.txt')
# os.mkdir(path):创建一个名为path的文件
# os.mkdir('ziyi')
# .getcwd():返回当前工作目录
print(os.getcwd())
# listdir():返回path指定文件包含的文件或文件夹的名字的列表
print(os.listdir()) #返回当前目录的所有文件名字
print(os.listdir('../')) #返回上一级目录
# rmdir():删除path指定的空目录
os.rmdir('新建文件夹')
4、应用
# 在桌面新建一个文件夹 ,并把桌面的图片复制一份到新的文件夹中去
# 1、在桌面新建一个文件夹
import os
desk='\\Users\\Administrator\\Desktop\\' #桌面路径
os.mkdir(desk+'新建文件夹')
# 2、读取桌面的图片 图片是二进制文件,想要写入二进制文件就要先拿到
with open(desk+'php.png','rb') as f:
img=f.read()
# 3、写入图片到桌面的新建文件夹中
with open(desk+'新建文件夹\\php.png','wb') as f:
f.write(img)