第四章、三元运算与文件操作

本章重点:

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("
ew line")
f.write("
ew line")
f.write("
ew line")
f.write("
ew 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),就会乱码

原文地址:https://www.cnblogs.com/51zf/p/9185150.html