129-文件基本操作

学习目标

1.了解文件操作的作用
2.掌握文件的基本操作如打开、读写、关闭等
3.掌握Python操作文件和文件夹的方法
4.能独立完成文件操作案例的编写

文件操作的目的是实现文件的永久保存

文件操作三步走

读取文件方法

打开文件 f = open() → 读取文件 → 关闭文件

read():一次性读取全部内容

f = open('python.txt','r', encoding='utf-8')
content = f.read()  #读取文件所有内容
content = f.read(1)  #代表只读取文件中的一个字符
print(content)
f.close

readlines():读取所有内容成列表,每个元素都是文件中的一行

f = open('python.txt', 'r', encoding='utf-8')
content = f.readlines(
print(content)
f.close()

readline():一行一行读取,

f = open('python.txt', 'r', encoding='utf-8′)
while True:
	content = f.readline()
	#判断,如果读取不到任何内容,则结束循环
	if not content:
		break
	#反之,如果没有执行break,则代表文件中还有内容
	print(content, end='')  # 思考为什么要 end=''
print(content)
f.close()

注意!编码问题

txt打开默认用utf8编码,python(大多数编程语言)输出的编码默认是ASCII编码

国际化组织 编码标准unicode → UTF-8

打开和写入要指定编码格式
f = open('python.txt','w',encoding='utf-8')

文件访问方式(mode)

r:只读
w:只写
a:追加

+:(增加读写功能 )加号代表既可以读取也可以写入

b:binary缩写形式,以二进制流的方式读取文件或写入数据到文件

rb
wb
ab
以上rb、wb、ab不仅可以针对文本文件,还可以针对图片、音频、视频文件进行读写操作

应用:文件备份

test.txt => test[backup].txt

104-1-find()方法


# find方法找后缀
oldname = 'test.txt' 拆解文件名与文件的后缀
index = oldname.rfind('.')
#获取文件名称
filename = oldname[:index]  # 切片只管前不管后 => test
postfix = oldname[index:]  # => .txt

# 拼接新文件名
newname = filename + '[backup]' + postfix

# 创建文件句柄
old_f = open(oldname, 'rb')  # 二进制流形式读
new_f = open(newname, 'wb')  # 二进制流形式写

# 大文件分块读
while True:
	content = old_f.read(1024)
	if not content:
		break
	new_f.write(content)

# 关闭文件
old_f.close()
new_f.close()