1,文件操作
模特主妇护士老师.txt
1,文件路径:d:模特主妇护士老师.txt
2,编码方式:utf-8 gbk 。。。。
3,操作方式:只读,只写,追加,读写,写读.....
以什么编码方式储存的文件,就以什么编码打开进行操作。
只读:r
rb
f = open('模特主妇护士班主任',mode='r',encoding='utf-8')
content = f.read()
print(content,type(content))
f.close()
# f = open('模特主妇护士班主任',mode='rb',)
# content = f.read()
# print(content)
# f.close()
r+ 读写
r+b 读写(以bytes类型)
# f = open('log',mode='r+',encoding='utf-8')
# print(f.read())
# f.write('大猛,小孟')
# f.close()
f = open('log',mode='r+b')
print(f.read())
f.write('大猛,小孟'.encode('utf-8'))
f.close()
只写:w
wb
# 先将源文件的内容全部清除,在写。
# f = open('log',mode='w',encoding='utf-8')
# f.write('附近看到类似纠纷')
# f.close()
f = open('log',mode='wb')
f.write('附近看到类似纠纷'.encode('utf-8'))
f.close()
w+
# f = open('log',mode='w+',encoding='utf-8')
# f.write('aaa')
# f.seek(0)
# print(f.read())
# f.close()
w+b
.......
追加
# f = open('log',mode='a',encoding='utf-8')
# f.write('佳琪')
# f.close()
# f = open('log',mode='ab')
# f.write('佳琪'.encode('utf-8'))
# f.close()
一、Python文件读写的几种模式:
r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别在哪里呢?
1、文件使用方式标识
‘r’:默认值,表示从文件读取数据。
‘w’:表示要向文件写入数据,并截断以前的内容
‘a’:表示要向文件写入数据,添加到当前内容尾部
‘r+’:表示对文件进行可读写操作(删除以前的所有数据)
‘r+a’:表示对文件可进行读写操作(添加到当前文件尾部)
‘b’:表示要读写二进制数据
#绝对路径 f = open('G:python全栈day8模特主妇护士班主任.txt',mode='r',encoding='UTF-8') content = f.read() print(content) f.close() # bytes ---->str f = open('模特主妇护士班主任.txt',mode='r',encoding='utf-8') content = f.read() f.write('fjsdlk') f.close() f = open('模特主妇护士班主任.txt',mode='rb',) content = f.read() print(content) f.close() f = open('log',mode='r+',encoding='utf-8') print(f.read()) f.close() f = open('log',mode='r+b') print(f.read()) f.write('大猛,小孟'.encode('utf-8')) f.close() #对于w:没有此文件就会创建文件 f = open('log',mode='w',encoding='utf-8') f.write('骑兵步兵') f.close() # 先将源文件的内容全部清除,在写。 f = open('log',mode='w',encoding='utf-8') f.write('附近看到类似纠纷') f.close() # f = open('log',mode='w+',encoding='utf-8') f.write('aaa') f.seek(0) print(f.read()) f.close() f = open('log',mode='wb', encoding='utf-8') f.write('附近看到类似纠纷'.encode('utf-8')) f.close() ValueError: binary mode doesn't take an encoding argument f = open('log',mode='wb',encoding('utf-8')) f.write('附近看到类似纠纷'.encode('utf-8')) f.close() SyntaxError: positional argument follows keyword argument f = open('log',mode='wb') f.write('附近看到类似纠纷'.encoding('utf-8')) f.close() AttributeError: 'str' object has no attribute 'encoding' f = open('log',mode='wb') f.write('附近看到类似纠纷'.encode('utf-8')) f.close() f = open('log',mode='a',encoding='utf-8') f.write('佳琪') f.close() f = open('log',mode='ab') f.write('佳琪'.encode('utf-8')) f.close() f = open('log',mode='ab') f.write('佳琪') f.close() TypeError: a bytes-like object is required, not 'str'
f = open('log',mode='a+',encoding='utf-8') f.write('佳琪') f.seek(0) print(f.read()) f.close() f = open('log',mode='ab') f.write('佳琪'.encode('utf-8')) f.close()
#功能详解 obj = open('log',mode='r+',encoding='utf-8') content = f.read(3) # 读出来的都是字符 f.seek(3) # 是按照字节定光标的位置 f.tell() 告诉你光标的位置 print(f.tell()) content = f.read() print(content) f.tell() f.readable() # 是否刻度 line = f.readline() # 一行一行的读 line = f.readlines() # 每一行当成列表中的一个元素,添加到list中 f.truncate(4) for line in f: print(line) f.close()
f = open('log',mode='a+',encoding='utf-8') f.write('佳琪') count = f.tell() f.seek(count-9) #调节光标 print(f.read(2)) f.close() with open('log',mode='r+',encoding='utf-8') as f, open('log',mode='w+',encoding='utf-8') as f1: #文件自动关闭 可以同时打开多个