1 python第三章 文件操作笔记

1.三元运算:
三元运算又称三目运算,是对简单条件语句的缩写,如:
简单条件语句:

if 条件成立:
val = 1
else:
val=2
改成三元运算:
val = 1 if 条件成立 else 2

举例:

a =2
b =5
val = a if a<b else b

val = a if 3<9 else b

结果
val
2
2.文件处理
1.给你一个文件 “aaa..txt”,如何查看内容
1.安装文本编辑器软件
2.选中右击,利用文本编辑器软件打开
3.查看 or 写入
4.保存,关闭

文件操作分为 读写 修改
读取文件

f = open(flie='D:/aaa.txt',mode='r',encoding='utf-8')
data = f.read()
f.close()

举例:

f = open(file="aaa.txt", mode="r", encoding="utf-8")

data = f.read()
print(data)
f.close()

结果
输出文档 aaa.txt 的内容
a=3
b=4
c=5

文件操作 成功 读取文件

ps: r 是文本模式
3.文件处理—二进制模式

f = open(file="aaa.txt", mode="rb")

data = f.read()
print(data)
f.close()

结果(直接以二进制模式打开文件,数据读到内存直接是bytes格式,如果想查看内容,需手动decode,因此在文件打开阶段不需指定编码):

b'a=3\r\nb=4\r\nc=5\r\n\r\n\xe6\x96\x87\xe4\xbb\xb6\xe6\x93\x8d\xe4\xbd\x9c \xe6\x88\x90\xe5\x8a\x9f \xe8\xaf\xbb\xe5\x8f\x96\xe6\x96\x87\xe4\xbb\xb6\r\n'

用于视频 图片 网络传输

4.文件处理—智能检测编码的工具
import chardet
pip安装第三方工具包

查看编码类型

f = open("aaa.txt",mode="rb")
data = f.read()
f.close()

data = chardet.detect(open("aaa.txt",mode="rb").read())
print(data)

输出结果
{‘encoding’: ‘u t f-8’, ‘confidence’: 0.99, ‘language’: ”}

文件读取这样写会空一行

f = open("aaa.txt",mode="r",encoding="utf-8")

for line in f:
     print(line)
f.close()

5文件处理 —-写模式文件操作
w 是创建模式 如果原来有会清空原来的写进新的

1.

f = open("a.txt",mode="w",encoding="utf-8")
f.write("佩奇")
f.close()

2.

f=open("b.txt",mode="wb")
f.write("佩奇".encode("gbk"))
f.close()

6文件处理—-追加模式操作文件
把内容追加到文件尾部append

f = open("a.txt","ab")
f.write("\n你好 中国".encode("utf-8"))
f.close()

7文件处理–混合操作文件
读写混合 r+
先读后写

f = open("a.txt",mode="r+",encoding="utf-8")
data = f.read()
print("content\n", data)

f.write("\n 农夫山泉")
f.write("\n 有点甜")

print("new content", f.read())

f.close()

写读模式 w+
已创建的模式打开(几乎没有应用场景)

8 文件处理-文件操作其他功能
fileno 返回一个整数
flush 把文件强制刷新到内存
readable 判断是否可读
readline 只读一行 遇到\r or \n 停止
tell 返回当前光标位
seek f.seek(0)返回开头 f.seek(20)
ps: gbk 编码2个字节一个中文
u t f-8 3个字节一个中文
truncate 按指定长度截断文件 指定长度的话 就从文件开头截断指定长度,不指定长度的话 ,就从当前位置到尾部的内容去掉
seekable 判断文件是否可进行seek
writeable 判断文件是否可写

9文件处理-修改文件
1 占内存
2 占硬盘

猜你喜欢

转载自blog.csdn.net/qq_42936973/article/details/81607909