第四章、三元运算与文件操作
本章重点:
1、掌握三元运算
2、掌握文件操作的几种模式:r,r+,w,w+,rb,wb
3、掌握文件读写、文件修改占内存和占硬盘的两种方式
4、文件操作的常用功能
一、三元运算
三元运算又称三目运算,是对简单的条件语句的简写。比如:
if 条件成立: val = 1 else: val = 2
可改成三元运算:
val = 1 if 条件成立 else 2
二、文件操作
1、读文件
f = open (file = "读文件", mode = "r", encoding = "utf-8") f.read() f.close()
1-1、rb模式,二进制读
f = open (file = "读文件", mode = "rb") f.read() f.close()
注意,和r模式相比,不需要指定编码,因为以rb打开的是字节模式
2、写文件w
f = open (file = "读文件", mode = "w", encoding = "utf-8") f.write() f.close()
2-1、wb模式、二进制写
f = open (file = "读文件", mode = "wb") f.write() f.close()
w和wb模式都会在写的时候把原有内容清空
3、读写模式:写读后写 r+
f = open (file = "读文件", mode = "r+", encoding = "utf-8") data = f.read() # 可以读内容 print(data) f.write("可以写内容") f.close()
4、写读模式,w+
f = open (file = "读文件", mode = "w+", encoding = "utf-8") data = f.read() # 可以读内容 print(data) f.write("\new line") f.write("\new line") f.write("\new line") f.write("\new line") print("content",f.read()) f.close()
输出
#空行,是print的结果 content # 从这里开始,读到的是刚写入的内容 new line new line new line new line
w+会先把文件清空,再写新内容,很少用
5、追加模式,在原有文件末尾追加内容
f = open (file = "读文件", mode = "a", encoding = "utf-8") f.write() f.close()
三、修改文件
1、文件修改替换原文件(占硬盘)
# 修改文件 import os f_name = "文件处理" f_new_name = "%s.new" % f_name old_str = "周蓓" new_str = "zhoufang" f = open(f_name, mode="r", encoding="utf-8") f_new = open(f_new_name, "w", encoding="utf-8") for line in f: if old_str in line: line = line.replace(old_str, new_str) f_new.write(line) f.close() f_new.close() os.replace(f_new_name, f_name) # 会生成一个新文件,将新文件替换成原文件即可
2、文件修改占内存的方式
old_str = "周芳" new_str = "wuyi" f = open(file="文件处理", mode="r+", encoding="utf-8") data = f.read() f.seek(0) data1 = data.replace(old_str, new_str) f.write(data1) f.close()
四、文件操作的一些常用功能
1、f.seek() 重置光标位置
2、f.tell() 寻找光标所在位置
3、f.truncate() 后面的内容全部截断
注意:所有括号内的全是字节形式,比如utf-8中,中文占3个字节,f.seek(2),就会乱码