【python中文件读写之open函数】

  • Post author:
  • Post category:python


一.在python中相关于文件读写操作有很多方法,例如使用xlrd、xlwt模块,pandas模块等;不过最简单的肯定还是open函数操作啦

二.open函数参数解析



文件读写open

open()

def open(file, mode=‘r’, buffering=None,

encoding=None, errors=None, newline=None, closefd=True):

file:文件的绝对路径

mode:表示文件的读写方式:r(读)、w(写)、a(追加)、b(字节)

encoding=None:表示编码格式

三.文件的读模式

# 1.r模式
fr = open("D:\测试文件\古诗词.txt", "r", encoding="utf-8")
res = fr.read() # 读取全部
res1 = fr.readline() # 一行一行读取
print(res)
print(res1)
res2 = fr.read(10) # 包括换行字符
print(res2)
fr.close() # 打开文件后需要关闭文件

四.文件的写入模式

# 2.w模式:写入的文件不存在会自动创建
# 每一次写入都会覆盖前面的内容
fw = open("w.txt", "w", encoding="utf-8")
# fw.write("python")
fw.write("java")
fw.flush()
fw.close()
fw1 = open("D:\测试文件\古诗词.txt", "w", encoding="utf-8")
fw1.write("python")
fw1.flush() # 写入缓冲区
fw1.close() # 关闭文件

五.文件的追加模式

# 3.a模式:与w模式一样,但是内容会追加
fa = open("D:\测试文件\古诗词.txt", "a", encoding="utf-8")
fa.write("\n")
fa.write("《悯农》")
fa.close()

六.文件的字节模式

## b模式:字节读取+字节写入
frb = open(r"D:\测试文件\test.jpg", "rb")
res = frb.read()
print(res)
fwb = open("test.jpg", "wb")
fwb.write(res)
fwb.flush()
fwb.close()

七.相关于读写的一些函数方法

read、readline、readlines、writelines

### read、readline、readlines、writeline
### 只能同时存在一种读法,除非重新打开文件
fr = open("D:\测试文件\古诗词.txt", "r", encoding="utf-8")
res = fr.read() # 整个文件读出
print(res)
res1 = fr.readline() # 默认读取第一行
res2 = fr.readline() # 默认读取第一行
res3 = fr.readline() # 默认读取第一行
print(res1, res2, res3)
for i in fr.readlines():
    print(i)
fw = open("D:\测试文件\古诗词.txt", "w", encoding="utf-8")
fw.writelines("abc")
fw.writelines("def")
fw.writelines(["111","qqqq"]) # 序列中是字符串
fw.write("111")
fw.flush()
fw.close()

八.其他模式

相关于open函数里面的读写方法,总结来说应该有12种;但是所有的模式都不会脱离r、w、a、b这四种的含义,例如:

### r+:读写皆可,写是追加模式
frr = open("D:\测试文件\古诗词.txt", "r+", encoding="utf-8")
res = frr.read()
print(res)
frr.write("python")
frr.write("java")
frr.flush()
frr.close()

### wb+:二进制打开可以读可以写;如果文件存在会干掉文件,不存在会创建
fwb = open(r"D:\测试文件\test.txt", "wb+")
res = fwb.read() # 一定是一个空字节
print(res)
fwb.write(b'\xe4\xbd\xa0\xe5\xa5\xbd')
fwb.flush()
fwb.close()

九.其他模式的解释

### 其他模式
# 1.r+--打开文件用于读写,文件指针会放在文件开头
# 2.rb+--二进制打开文件用于读写,文件指针会放在文件开头
# 3.w+--打开文件用于读写,并且从头开始编辑,会覆盖原内容
# 4.wb+--二进制打开文件用于读写,并且从头开始编辑,会覆盖原内容
# 5.ab--二进制打开用于追加,指针放末尾,只能写
# 6.ab+--二进制打开文件用于追加,指针放末尾
# 7.a+--打开文件读写,指针放末尾,文件存在追加模式,不存在新建

十.总结

在python中操作excle、word、pdf、txt我们会用到非常多的第三方库,但是open函数是操作文件读取上传写入最简单的一种方式,这也为我们平时的代码编写提供了很多的便捷,不过写入的效率偏低,所以大量内容的时候基本不用它



版权声明:本文为weixin_51366582原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。