文件处理

#################文件处理################
# r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
# w,只写模式【不可读;不存在则创建;存在则清空内容】
# a, 之追加写模式【不可读;不存在则创建;存在则只追加内容】
#2. 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码、图片文件的jgp格式、视频文件的avi格式)
# rb 
# wb
# ab
#读
#f.read() #读出文件的所有内容
# f.readline() #一次读一行
# f.readlines() #读出文件所有的行存在列表中

#写
# f.write('1111
22222
') #多行写入
# f.writelines(['1111
','22222
']) #以列表方式写入


############r模式#####################
#手段关闭文件
# f=open(r'C:UsersxxxDesktopPython11.txt',encoding='utf-8') #默认打开模式就为r
# data=f.read()
# print(data)
# f.close()

#with 打开文件 自己关闭
# with open(r'C:UsersxxxDesktopPython11.txt',mode='r') as f:
# print(f.read())

#打开多个文件
# with open(r'C:UsersxxxDesktopPython11.txt',mode='r') as f1,open(r'C:UsersxxxDesktopPython12.txt',mode='r') as f2:
# print(f1.read())
# print(f2.read())

#追加多行写入
# with open(r'C:UsersxxxDesktopPython11.txt','a',encoding='utf-8') as f:
# f.writelines(['{"x:1}
','{"y":1}
'])

#逐行读取
# f=open(r'C:UsersxxxDesktopPython11.txt',mode='r',encoding='utf-8')
# print(f.readline(),end='') #读取第一行内容
# print(f.readline(),end='') #读取第二行内容
# f.close()

#读写整个文件的内容 以行切分
# f=open(r'C:UsersxxxDesktopPython11.txt',mode='r',encoding='utf-8')
# print(f.readlines())
# f.close()

#打印文件的全部内容
# with open(r'C:UsersxxxDesktopPython11.txt',encoding='utf-8') as f:
# for line in f:
# print(line,end='')
# for line in f.readlines():
# print(line,end='')

#w:只写模式
#1.当文件存在时 清空
#2.当文件不存在时,创建空文档
# f=open(r'C:UsersxxxDesktopPython1ab.txt',mode='w',encoding='utf-8') #默认wt模式
# f.write('第一行
')
# f.write('第二行
') #wite 逐行写入
# f.write('aaaaaa
bbbbbbb
cccc
') #写入多行
# f.writelines(['1111
','22222
','3333
']) #以列表写入多行
# f.close()


#a:追加写入模式
#1.在文件不存在时 创建文件
#2.在文件存在时 光标直接跑到文件某尾

# f=open(r'C:UsersxxxDesktopPython1access.log',mode='a',encoding='utf-8')
# print(f.writable()) #判断文件是否可读
# f.write('555555555555555
')
# f.close()

#文件打开模式b模式
#1.与t模式类似不能单独使用 必须是rb wb ab
#2.b模式下读写都是以bytes单位的
#3.b模式下一定不能指定encoding参数

#读取图片文件
# with open('C:UsersxxxPicturesCamera Roll123.GIF',mode='rb') as f: #以二进制处理文件
# data=f.read()
# print(data)
# print(type(data))

#rb模式
# with open(r'C:UsersxxxDesktopPython1ab.txt',mode='rb') as f:
# data=f.read()
# # print(data) # bytes
# print(data.decode('utf-8')) #bytes--unicode
# print(type(data))


#wb模式
# with open(r'C:UsersxxxDesktopPython1ab.txt',mode='wb') as f:
# msg='你好啊,我是miss zhang'
# f.write(msg.encoding('utf-8')) #以什么字符编码写入 以什么读出

#rb模式
# with open(r'C:UsersxxxDesktopPython1ab.txt',mode='rb') as f:
# data=f.read()
# print(type(data))
# print(data.decode('utf-8'))
# print(data)


#ab模式
# with open(r'C:UsersxxxDesktopPython1ab.txt',mode='ab') as f:
# f.write('你好'.encode('utf-8'))


#r+t 可读 可写
# with open(r'C:UsersxxxDesktopPython1ab.txt',mode='r+t',encoding='utf-8') as f:
# print(f.readable()) # 判断是否可读 为tu
# print(f.writable()) # 判断是否可写 true
# print(f.readline()) #逐行读
# f.write('
吴大炮你也好
')


#r+ 模式 光标定在开始
# import time
# with open(r'C:UsersxxxDesktopPython1ab.txt','r+',encoding='utf-8') as f:
# f.seek(0,2)
# while True:
# line=f.readline()
# if line:
# print(line.decode('utf-8'))
# else:
# time.sleep(0.2)

#按光标插入内容
# with open(r'C:UsersxxxDesktopPython1ab.txt','r+',encoding='utf-8') as f:
# f.seek(9) #光标移动三个位置 偏移量单位是字节 一个中午三字节
# f.write('[最第二帅的人]')

  

原文地址:https://www.cnblogs.com/zhangcaiwang1/p/9534370.html