python-14-文件操作,,前言python中对
python-14-文件操作,,前言python中对
前言
python中对文件的读写也是非常方便的,本章节将讲解读、写、读写等常用操作。下面讲师必要的参数:
1、文件路径:必须得知道文件的路径,不然怎样进行读写?
2、编码方式:utf-8,gbk,gb2312....(python3的str是unicode编码存储的,我们一般常用utf-8存在,编码不了解的话容易出现乱码)
3、操作模式:只读,只写,追加,写读,读写。
“r”打开读取(默认)
“w”打开进行写入,首先截断文件
“x”创建一个新文件并打开它进行写入
“a”打开写入,如果文件存在,则追加到文件的末尾
“b”二进制模式
“t”文本模式(默认)
“+”打开磁盘文件进行更新(读写)
“U”通用换行模式(已弃用)
一、只读
1、r:str方式读,编码:UTF-8,bytes --》 str(将我们的文件转为python3中的str)
# 1、r:str方式读,编码:UTF-8# bytes --》 strf = open(‘1.txt‘, ‘r‘, encoding="UTF-8")c = f.read()print(c)f.close()
2、rb:bytes方式读,非文字的文件。可以看到【我是一个文件哈】是7个文字,一个文字3个字节,所以我们转换为bytes有21个,每个 \ 隔开。
# 2、rb:bytes方式读,非文字的文件f = open(‘1.txt‘, ‘rb‘)c = f.read()print(c)f.close()
二、只写
1、w:写入,没有此文件则是新创建,有此文件会清空源文件再写。
# 1、w:写入,没有此文件是创建,有此文件会清空源文件再写f = open(‘log‘, ‘w‘, encoding="utf-8")f.write(‘abc小龙abc‘)f.close()
2、wb:二进制写入,凡是有wb都需要加.encode("utf-8")
# 2、wb:写入,没有此文件是创建,有此文件会清空源文件再写f = open(‘log1‘, ‘wb‘)f.write(‘abc小龙abc‘.encode("utf-8")) # 以utf-8编码格式,写入东西f.close()
3、a:追加写入
# 3、a:追加写入f = open(‘log1‘, ‘a‘, encoding="utf-8")f.write(‘abc小龙abc‘)f.close()
三、读写
1、r+ 先读再写,推荐该 r+ 方式。
# 1、先读再写,写了不能再读f = open(‘log‘, ‘r+‘, encoding="utf-8")f.seek(0)print(f.read())f.write(‘小哥哥谈恋爱吗?我偷老公的钱养你‘)f.close()
2、先写再读,推荐该 r+ 方式。
# 2、先写再读,不推荐f = open(‘log‘, ‘r+‘, encoding="utf-8")f.write(‘小哥哥谈恋爱吗?我偷老公的钱养你‘)print(f.read())f.close()
当然模式可以组合,如r+b,a+b等。
四、常用操作
1、seek 指定光标
f = open("log", "r+", encoding="utf-8")a = f.read() # 默认读全部print(a)f.seek(6) # 按照字节指定光标开始读位置c = f.read(6) # 指定读 N 个字符print(c)f.close()
2、追加 小龙女,调节光标获取后面的9个字节
# 追加 小龙女,调节光标获取后面的9个字节f = open("log", "a+", encoding="utf-8")f.write(‘小龙女‘)count = f.tell() # 查看光标的位置f.seek(count-9) # 按照字节指定光标开始读位置c = f.read()print(c)f.close()
3、readline、readlines的使用
f = open("log", "a+", encoding="utf-8")f.seek(0)# c = f.readline() # 一行一行读d = f.readlines() # 每行当成一个列表,添加到list中# print(c)print(d)f.close()
4、推荐:with, 不用 close 关闭,也可读多个
# 推荐:with 不用 close 关闭,可读多个a = open(‘log‘, "r+", encoding="utf-8")b = open(‘log‘, "r+", encoding="utf-8")with a as f, b as f1: print(f.read()) print(f1.read())
欢迎来QQ交流群:482713805
python-14-文件操作
评论关闭