首页 > 编程语言 > 详细

Python 入门第九天

时间:2020-06-11 22:30:31      阅读:49      评论:0      收藏:0      [点我收藏+]

目录

一、with上下文管理(*****)

二、b模式(*****)

     1、新的数据bytes类型

     2、编写copy工具

三、+模式(***)

四、文件操作的其他方法(*****)

一、with上下文管理(*****):自动调用f1.close()回收操作系统

f = open(r"文件路径", mode="rt", encoding="utf-8")
data = f.read(内容) # f.write(内容)
f.close()

例一:用with方法读一个文件的内容
with open(‘今日内容.txt‘,mode=‘rt‘,encoding=‘utf-8‘) as f1:
data = f1.read()
print(data)

例二:用with方法打开多个文件
with open(‘今日内容.txt‘, mode=‘rt‘, encoding=‘utf-8‘) as f1, \
open(‘a.txt‘, mode=‘rt‘, encoding=‘utf-8‘) as f2:
print(‘文件1的内容‘.center(50, ‘#‘))
data = f1.read()
print(data)

print(‘文件2的内容‘.center(50, ‘#‘))
data = f2.read()
print(data)

自动调用f1.close()、f2.close()回收操作系统

二、b模式(*****)

1、新的数据bytes类型

with open(‘a.txt‘,mode=‘rb‘) as f:
data=f.read()
print(data)
print(type(data))

t模式只能用于读文本文件
with open(‘a.jpg‘,mode=‘rt‘,encoding=‘utf-8‘) as f:
data=f.read()
print(data)
print(type(data))
图片<---------jpg-------二进制数
字符<---------utf-8-------二进制数

b模式可以用于读所有的文件
with open(‘a.jpg‘,mode=‘rb‘) as f:
data=f.read()
print(data)
print(type(data))
with open(‘a.txt‘,mode=‘rb‘) as f:
    data = f.read()
print(data.decode("utf-8"))
print(type(data))

2、编写copy工具
with open(‘a.jpg‘, mode=‘rb‘) as src_f, \
open(‘b.jpg‘, mode=‘wb‘) as dst_f:
# data = src_f.read()
# dst_f.write(data)

for line in src_f: # line=文件中的1行内容(一行一行读代码,避免因文件过大,read()出错)
dst_f.write(line)

补充编码解码知识点:
user = input(‘>>: ‘)  # user="林海峰"
user = "林海峰"

编码操作
字符串===utf-8===》bytes
res=user.encode("utf-8")
print(res)
print(type(res))

基于网络发送数据(res)

解码操作
bytes====》utf-8=====》字符串
print(res.decode("utf-8"))

三、+模式(***)
1、可读可写模式,可以省略t,默认就是t模式,读写都是以字符串为单位
r+t
w+t
a+t

2、可读可写模式,b模式下读写都是以bytes二进制为单位
r+b
w+b
a+b

with open(‘b.txt‘,mode=‘r+t‘,encoding=‘utf-8‘) as f:
print(f.read())
f.write("abcdefg")

with open(‘b.txt‘,mode=‘w+t‘,encoding=‘utf-8‘) as f:
f.write("我爱你中国")
print(f.read())

with open(‘b.txt‘,mode=‘a+t‘,encoding=‘utf-8‘) as f:
f.write("我爱你中国")
print(f.read())

四、文件操作的其他方法(*****)
1、f.readline()
with open(‘b.txt‘, mode=‘rt‘, encoding=‘utf-8‘) as f:
line1=f.readline()
line2=f.readline()
line3=f.readline()
line4=f.readline()
print(line1,end="")
print(line2,end="")
print(line3,end="")
print(line4,end="")

for line in f:
print(line)

l = []
for line in f:
l.append(line)

l = f.readlines()
print(l)
2、 f.writelines()
with open(‘b.txt‘, mode=‘wt‘, encoding=‘utf-8‘) as f:
f.write("1111\n2222\n333\n")

lines=["1111\n","222\n","333\n"]

for line in lines:
f.write(line)

f.writelines(lines)

f.writelines({‘k1‘:111,‘k2‘:222,"k3":3333})
f.writelines({‘k1‘:111,1:44444,‘k2‘:222,"k3":3333}) # 报错

f.writelines("hello")
f.write("hello")
3、f.name()
with open(r‘b.txt‘, mode=‘wt‘, encoding=‘utf-8‘) as f:
print(f.name) # 获取的是文件的路径
4、f.flush()
with open(r‘b.txt‘, mode=‘wt‘, encoding=‘utf-8‘) as f:
f.write(‘哈哈哈\n‘)
f.flush()

Python 入门第九天

原文:https://www.cnblogs.com/gy1996-07/p/13096347.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!