Python-文件操作—_19

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:  #文件自动关闭 可以同时打开多个

 


posted @ 2019-04-02 18:48  LXL_1  阅读(206)  评论(0)    收藏  举报