我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python Open函数详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python Open函数详解

这里写目录标题

一级目录

二级目录

三级目录

1、文件IO的常见操作

方法
open打开
read读取
write写入
close关闭
readline行读取
readlines多行读取
seek文件指针操作
tell指针位置

2、打开操作Open

打开一个文件,返回一个文件对象(流对象)和文件描述符,打开文件失败,返回异常

open(file,mode=“r”,buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None)

2.1 file 文件名

打开或者要创建的文件名,如果不指定,默认当前路径

2.2 mode 模式
模式功能备注
r缺省值,只读打开文件,指针位于文件头前提:文件已创建
w只写模式打开文件,或文件存在,会清空原有内容,即覆盖写1.文件存在:清空文件。
2.文件不存在,创建新文件
a追加,只写1.文件存在:清空文件。
2.文件不存在,创建新文件
x创建并写入一个新文件注意:如果该文件已存在则会报错
+为r、w、a、x 提供缺失的读写功能前提:文件不存在
b二进制模式,字节流前提:文件不存在

借用网上大神图示一张:
在这里插入图片描述
示例:

2.2.1. R模式:mode = “r”
#mode = r,文件要存在file_r = open("test.txt")print(file_r)print(file_r.read())file_r.write("abc")file_r.close()

运行结果:
在这里插入图片描述

2.2.2. W模式:mode = “w”
#mode = Wfile_r = open("test1.txt",mode="w")file_r.write("abc")print(file_r)print(file_r.read())file_r.close()

运行结果:
在这里插入图片描述

2.2.3. a模式:mode = “a”
#mode = afile_a = open("test1.txt",mode="a")file_a.write("追加内容")file_a.close()

运行结果:
在这里插入图片描述

2.2.4. a模式:mode = “x”
file_a = open("test2.txt",mode="x")file_a.write("追加内容x")file_a.close()

运行结果:
在这里插入图片描述

在这里插入图片描述

2.2.5. “+”模式,mode=“+”
#mode = +file_xx = open("test.txt",mode="r+")file_xx.write("test追加内容")  #使用+后,原本r只读的模式,也可写入内容print(file_xx.read())file_xx.close()

在这里插入图片描述

2.3 encoding: 编码,仅文本模式使用

None表示使用缺省编码,Windows缺省:GBK,Linux缺省使用UTF-8
文件打开时如果报错:UnicodeDecodeError,刚使用此参数对文件进行编码读取,我们看下报错情况

#encodingfile_xx = open("test.txt",encoding="GBK")print(file_xx.read())file_xx.close()

运行结果:
在这里插入图片描述

2.4 buffering: 缓冲区
2.4.1. 缓冲buffer与缓存Cache的区别

缓冲(Buffer):

  • 常见于对数据的暂存,然后批量传输或者写入, 多使用顺序的方式,用来缓解不同设备之间频繁地、缓慢地随机写。
  • 缓冲的作用就是协调上下层应用之间的性能差异,可以有效减少上层组件对下层组件的等待时间,可提升整个系统的性能
  • 可以把它理解为一个蓄水池,达到一定的容量就全部释放,缓冲区的数据释放到磁盘

缓存(Cache):
常见于对已读数据的复用,通过将它们缓存在相对高速的区域,缓存主要针对的是读操作。
在这里插入图片描述

2.4.1. Buffering取值说明
取值二进制文本
buffering=-1io.DEFAULT_BUFFER_SIZE(4096或8192)io.DEFAULT_BUFFER_SIZE
buffering=0禁止缓存,关闭缓冲区不支持
buffering=11line buffering(行缓存),遇到换行符才flush
buffering > 1buffering自设置值io.DEFAULT_BUFFER_SIZE

示例:

在这里插入代码片

3、seek()文件指针操作

fileObject.seek(offset[, whence])
注:

  1. ffset – 开始的偏移量,也就是代表需要移动偏移的字节数
  2. whence:可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;
    0代表从文件开头开始算起,
    1代表从当前位置开始算起,
    2代表从文件末尾算起。
    注意:
    文本模式支持向后偏移,但1,2偏移量只支持0,所以没什么作用
    二进制模式支持任意偏移,向后seek可以超界,向前seek不可超界,否则异常

示例:

#seek(0,0)f1= open('test.txt','r')line = f1.readline()print('**************************')print(line)f1.seek(0, 0)print('########################')line = f1.readline()print(line)f1.close()

运行结果:
在这里插入图片描述
2.seek(x,1)//从当前位置偏移x位 x 可为正负零,

f1= open('test.txt','rb')line = f1.readline()print('**************************')print(line)f1.seek(2, 1)print('########################')line = f1.readline()print(line)

4、readline/readlines

  1. readline(size=-1):一行一行读取,size设置一次能读取行内几个字符或字节
  2. readlines(hint=-1):读取所有行的列表,指定hint则返回指定的行数

示例:

#readlinesf = open("test.txt")for line in f.readlines():    print(line)f.close()# #readlinef = open("test.txt")print(f.readline())print(f.readline())print(f.readline())f.close()

5、with…as 上下文

写入文件时,如果忘记close或者文件使用过程中发生异常,则文件将不会正常关闭,占用系统资源,Python提供了with…as上下方管理来处理这种情况

内部处理逻辑:

def __enter__(self):    return selfdef __exit__(self, type, value, traceback):    self.close()

示例:

with open("test.txt") as f:    print(f.read())

6、open总结

一个文件打开之后,会产生一个文件对象,这个文件可为:只读,只写,读写。可被seek,即文件指针来回动,seek要看模式,允许从前向后走。文件有buffer,建议默认Buffer。文件换行符可控制。文件描述符占用资源,close会自动释放掉

来源地址:https://blog.csdn.net/totorobig/article/details/127430672

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python Open函数详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python的open函数

python的open函数:r是只读,r+是读写,a是追加,w是新建(覆盖)注:1、写入内容时记得加"\n"换行,变量是b+"\n"(b为变量名)2、读取文件内容时注意加strip(),去掉"\n"示例:#!/usr/bin/pythonf
2023-01-31

Python利用open函数读写文件的示例详解

在目前的环境中,读取文件应该算是最基本的操作了,python也内置了读写文件的函数,让我们来看下Python是如何利用open函数读写文件吧
2023-05-16

linux 中open()函数详解及简单实例

open()函数创建文件时便捷的权限设置 头文件#include #include #include 函数原型int open( const char * path
2022-06-04

Python的open()函数如何用

本篇内容主要讲解“Python的open()函数如何用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python的open()函数如何用”吧!1.文件处理在 Python 中使用文件的关键函数是
2023-06-29

详解Python中open()函数指定文件打开方式的用法

文件打开方式 当我们用open()函数去打开文件的时候,有好几种打开的模式。 'r'->只读 'w'->只写,文件已存在则清空,不存在则创建。 'a'->追加,写到文件末尾 'b'->二进制模式,比如打开图像、音频、word文件。 '+'-
2022-06-04

python函数详解

结构:    def  函数名():        函数体执行:    函数名()返回值:    return    一,函数中,遇到return终止函数    二,返回值,返回给了函数的调用者:函数名()    return单个值,返回单
2023-01-31

python中open函数如何使用

在Python中,open函数用于打开文件,并返回一个文件对象。可以通过使用不同的模式来指定打开文件的方式。基本语法如下:```open(file, mode='r', buffering=-1, encoding=None, errors
2023-10-07

python中open函数怎么使用

open函数是Python内置的一个函数,用于打开文件并返回一个文件对象。它的使用方法如下:1. 基本语法:```open(file, mode='r', buffering=-1, encoding=None, errors=None,
2023-09-14

Python函数介绍:open函数的功能和示例

Python函数介绍:open函数的功能和示例Python中的open函数是一个非常重要的函数,它被用来打开文件并对文件进行读取或写入操作。本文将深入介绍open函数的使用及其参数,并提供一些示例来说明其用法。open函数的基本用法使用op
Python函数介绍:open函数的功能和示例
2023-11-03

python imread函数详解

Python 中各种imread函数的区别与联系 最近一直在用python做图像处理相关的东西,被各种imread函数搞得很头疼,因此今天决定将这些imread总结一下,以免以后因此犯些愚蠢的错误。如果你正好也对此感到困惑可以看下这篇总结。
2022-06-02

探究python中open函数的使用

最近,开始学习python的开发,遇到了一点文件操作的问题,探究一下open函数的使用。 一、open()的函数原型 open(file, mode=‘r', buffering=-1, encoding=None, errors=None
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录