目录

  • 一、open()函数的基本用法
    • 1. 读取文件
    • 2. 打开模式
    • 3. 编码方式
  • 二、open(),close()与 with open()的区别

一、open()函数的基本用法

在介绍区别之前先简单说明 open() 函数的用法,分为以下三个部分:

1. 读取文件

使用格式:

文件句柄 = open('文件路径', '模式',编码方式)

流程如下:

f = open(file_path, 'r', encoding='utf-8')  # 打开文件, 编码方式可省略,一般取默认
data = f.read()                             # 读取文件
print(data)                                 # 打印读取内容
f.close()                                   # 关闭文件或
with open(file_name, 'r') as f:data = f.read()                         # 读取文件print(data)                             # 打印读取内容

注意,上述文件的 file_path 也就是文件的路径,可以是绝对路径(文件在硬盘的位置路径),也可以是相对路径(与脚本同在一个目录下)。
上述读取文件是使用 read () 表示读取整个文件的内容,也可以使用 readline() 表示读取文件一行,或 readlines() 按行读取文件内容。最后要使用 close() 函数关闭文件。

2. 打开模式

模式的参数也就是第二个参数,主要有以下模式:


r   以只读方式打开文件。这是默认模式,文件必须存在,不存在抛出错误
rb  以二进制格式打开一个文件用于只读。
r+  打开一个文件用于读写。文件指针将会放在文件的开头,读完就追加。
w   打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+  打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a   打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+  打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

注:后面有带 b 的方式,不需要考虑编码方式。带 + 号的,则可读可写,不过它们之间还是有区别的。

3. 编码方式

  • win系统默认是gbk编码的,所以桌面生成的TXT之类的都是gbk编码的;
  • 出现乱码,一般都是原文件的编码方式和打开指定的编码不一致所致。

二、open(),close()与 with open()的区别

这也是我们平时读取文件容易忽略的地方。

  • 一般是使用 open()close() 组合来打开和关闭文件。
    但这样做时,如果程序存在bug,导致close()语句未执行,文件将不会关闭。这看似微不足道,但未妥善地关闭文件可能会导致数据丢失或受损。如果在程序中过早地调用close(),你会发现需要使用文件时它已关闭(无法访问),这会导致更多的错误。
  • 关键字 with 在不再需要访问文件后自动将其关闭。
    在这个程序中,注意到我们调用了open(),但没有调用close();并非在任何情况下都能轻松确定关闭文件的恰当时机,但通过使用关键字 with,可让Python去确定:你只管打开文件,并在需要时使用它,Python自会在合适的时候自动将其关闭。

Python 中 open(),close()组合与 with open()的区别相关推荐

  1. python中remove函数是什么意思,python中pop函数和remove函数有什么区别

    python中pop函数和remove函数有什么区别 发布时间:2020-12-10 09:36:18 来源:亿速云 阅读:80 作者:小新 小编给大家分享一下python中pop函数和remove函 ...

  2. python中模块(Module)和包(Package)的区别 (导入模块、导入包)(import导包)

    如下结构,mycompany就是包,abc.py和xyz.py就是模块 mycompany ├─ __init__.py ├─ abc.py └─ xyz.py 参考文章:Python中模块(Modu ...

  3. Python中“xx+=xx”与“xx=xx+xx”的区别

    Python中"xx+=xx"与"xx=xx+xx"的区别: 可变类型有: list(列表),dict(字典) 不可变类型有: string,integer,t ...

  4. python中的单引号和双引号的区别

    python中的单引号和双引号的区别 今天在码代码的过程中突然想到这个问题,于是上网浏览了一下,发现在python中两种表达方式是没有区别的,两种表达方式都可以用来表达一个字符串.但是这两种通用的表达 ...

  5. Python中集合set和字典dict的用法区别

    Python中集合set和字典dict的用法区别 核心知识点 Python列表(list).元组(tuple).字典(dict)和集合(set)详解 Python set集合详解 1. Python创 ...

  6. python列表和元组的应用,Python中列表和元组的使用方法和区别

    一.二者区别 列表: 1.可以增加列表内容 append 2.可以统计某个列表段在整个列表中出现的次数 count 3.可以插入一个字符串,并把整个字符串的每个字母拆分当作一个列表段追加到列表当中 e ...

  7. python中继承和组合的区别_Py修行路 python基础 (十五)面向对象编程 继承 组合 接口和抽象类...

    一.前提回忆: 1.类是用来描述某一类的事物,类的对象就是这一类事物中的一个个体.是事物就要有属性,属性分为 1:数据属性:就是变量 2:函数属性:就是函数,在面向对象里通常称为方法 注意:类和对象均 ...

  8. Python中is、not、is not的区别

    Python中is和not是两个关键字,而is not的组合可以看作又一个关键字,不可以将其看作是两个关键字的简单堆砌. 1. "is" keyword is关键字的作用是判断两个 ...

  9. Python 中读取和保存图像方法汇总及其区别

    方法一:利用 PIL 中的 Image 函数 这个函数读取出来不是 array 格式,这时候需要用 np.asarray(im) 或者 np.array()函数 .区别:np.array() 是深拷贝 ...

  10. python中的apply(),applymap(),map() 的用法和区别

    在Python中如果想要对数据使用函数,可以借助apply(),applymap(),map() 来应用函数,括号里面可以是直接函数式,或者自定义函数(def)或者匿名函数(lambad) impor ...

最新文章

  1. JMC | 人工智能在药物合成中的当前和未来作用(3)
  2. js设置元素class方法小结及classList相关
  3. UIKit框架-高级控件Swift版本: 5.UITextView方法/属性详解
  4. 攻击需要成本吗_石子厂成本大概多少?开一个石子厂都需要哪些设备,价格高吗 ?...
  5. 二叉查找树--插入、删除、查找
  6. 数字化方法基础_常用函数
  7. java基础5 (一维)数组和二维数组
  8. Python大数据处理方案
  9. STM32串口通信实例
  10. Activity 过渡动画 — 让切换更加炫酷
  11. 康奈尔笔记法,高效学习方法推荐
  12. 二极管,电容正负极判断(图文)
  13. 新疆计算机操作题,新疆维吾尔自治区教师计算机操作题复习8套.pdf
  14. 哪些晦涩难懂的shell命令都是什么的缩写?
  15. Element table 导出Excel重复数据
  16. 用python画函数图像
  17. LeetCode 6194. 最小 XOR
  18. mybatis if-else(chose when otherwise )
  19. HRM- Fusion体验报告
  20. docker进入容器出现bash-4.2#解决办法

热门文章

  1. vue method ajax上传文件,前端上传文件追根溯源_和_antd_vue上传文件实例
  2. 黄家驹--奔跑在理想与诗意的道上
  3. DDCTF2018逆向 黑盒
  4. Android: viewHolder 复用错乱导致的显示错误
  5. 荣耀笔记本linux版跑分,4K入了台荣耀MagicBook锐龙版笔记本电脑,跑分没令我失望...
  6. 阿里云ACA认证课程学习(阿里云简介掌握云服务器ECS)
  7. 项目管理英语词汇总结·二十一
  8. 一文读懂:Kafka(分布式消息队列)的基础概念,教程
  9. PS之创建中性灰磨皮观察图层
  10. js 社会主义点击事件