翻开Python的宝匣:深度解析open()函数,解锁更多操作技巧。

简介: 翻开Python的宝匣:深度解析open()函数,解锁更多操作技巧。

前言


Python中的open函数用于打开一个文件,创建一个file对象,之后相关的方法才可以调用它进行读或者写。


0、Open介绍


在Python中,open()函数是用于打开文件的内置函数,可以读取或写入文件的内容。它的一般语法是:

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

一、参数说明

# file: 要打开的文件名或文件路径。
# mode: 打开文件的模式。默认是 'r'(只读模式),也可以是 'w'(写入模式)、'a'(追加模式)、'x'(独占创建模式)等。具体的模式说明如下:
# 'w':打开一个文件只用于写入,如果该文件已存在则打开文件,并且从头开始编辑,即原有内容会被删除。如果该文件不存在,则创建新文件。
# 'r':以只读的方式打开文件。文件的指针将会放在文件的开头。
# 'b':二进制模式
# '+':打开一个文件进行更新,可读可写
# 'a':打开一个文件用于追加,如果该文件已经存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,则创建新文件进行写入。
# 'x':独占创建模式,创建新文件并以写入模式打开,如果文件已存在则会引发 FileExistsError。
# 't':文本模式,以文本方式读取或写入文件。
# 注意:还有两两合并的一些模式,是两种单一模式的作用相加。
# 对象方法:
# read(size):返回整个文件, 如果指定size则返回size个字符。
# readline():返回一行
# readlines(): 返回全部行的一个列表
# write(): 写入字符
# close(): 关闭文件
f = open('tes.txt', 'r')
f.read()
# 使用之后一定要记得关闭,因为会占用系统资源
f.close()


二、使用with语句


使用open函数直接打开文件,如果忘记使用close函数的话,会占用系统资源,为了解决这个问题,我们使用with语句来自动帮助我们调用close()方法。


官方一点说:


  • 使用with语句的主要好处是可以自动管理文件的打开和关闭。当with语句结束时,文件会自动关闭,这样可以避免忘记手动关闭文件而导致的资源泄漏。
  • 另外,使用with语句还可以让代码更加简洁明了。在with语句块中,文件对象的作用域仅限于该语句块中,因此不必担心文件对象在其他部分被意外修改或调用。这样可以更好地控制文件对象的作用范围,提高代码的可读性和可维护性。
  • 除了文件操作外,with语句还可以用于其他需要资源管理的场景,如数据库连接、网络连接等。在这些场景中,使用with语句可以保证资源的正确打开和关闭,避免资源泄漏和错误。


with open(文件名, 模式) as 文件对象:
  文件对象.方法()
# 本人比较常用的写法是通过迭代器访问数据然后加入到一个列表中去
# 举例
# 构建空的列表
word_dic = []
# 通过迭代器访问: for word in f
# 用列表生成式直接将数据加入到一个空的列表中去
# 这里写的文件路径是相对路径,也可以写绝对路径,一般写绝对路径,不容易错误。
with open('./vocab.txt', 'r') as f:
    word_dic = set([word.rstrip() for word in f])


三、拓展延伸(其他文件操作的方法)


在Python中,open()函数是用于打开文件的内置函数,是最常用的文件操作方法之一。除了open()函数外,还可以使用一些其他方法来进行文件操作,具体如下:


  • 使用os模块的文件操作方法,如os.read()和os.write()等,可以用于对文件进行读写操作。
  • 使用shutil模块的文件操作方法,如shutil.copy()和shutil.move()等,可以用于复制、移动和删除文件等操作。
  • 使用pickle模块的dump()和load()方法,可以将Python对象序列化为二进制格式并保存到文件中,或从文件中读取二进制格式并反序列化为Python对象。
  • 使用csv模块的reader()和writer()方法,可以读写CSV文件格式。
  • 使用pandas库的read_csv()和to_csv()方法,可以读写CSV文件,并将其转换为DataFrame格式进行数据处理。

需要注意的是,这些方法的使用场景和适用范围不同,要根据具体的需求选择合适的方法。如果只需要进行简单的文件读写操作,建议使用open()函数。如果需要进行复杂的数据处理操作,可以考虑使用pandas库等高级工具。


参考文章:

Python open() 函数.

Python使用with open() as读写文件【必知必会】.


总结


想起来已经好几天没写博客了,每天好像也没做什么工作,但是就是感觉很累,离谱!

相关文章
|
2天前
|
数据挖掘 数据处理 索引
python常用pandas函数nlargest / nsmallest及其手动实现
python常用pandas函数nlargest / nsmallest及其手动实现
15 0
|
5天前
|
数据采集 机器学习/深度学习 数据挖掘
Python数据清洗与预处理面试题解析
【4月更文挑战第17天】本文介绍了Python数据清洗与预处理在面试中的常见问题,包括Pandas基础操作、异常值处理和特征工程。通过示例代码展示了数据读取、筛选、合并、分组统计、离群点检测、缺失值和重复值处理、特征缩放、编码、转换和降维。强调了易错点,如忽视数据质量检查、盲目处理数据、数据隐私保护、过度简化特征关系和忽视模型输入要求。掌握这些技能和策略将有助于在面试中脱颖而出。
23 8
|
6天前
|
Serverless 开发者 Python
《Python 简易速速上手小册》第3章:Python 的函数和模块(2024 最新版)
《Python 简易速速上手小册》第3章:Python 的函数和模块(2024 最新版)
39 1
|
7天前
|
索引 Python
Python高维变量选择:SCAD平滑剪切绝对偏差惩罚、Lasso惩罚函数比较
Python高维变量选择:SCAD平滑剪切绝对偏差惩罚、Lasso惩罚函数比较
|
7天前
|
调度 Python
Python多线程、多进程与协程面试题解析
【4月更文挑战第14天】Python并发编程涉及多线程、多进程和协程。面试中,对这些概念的理解和应用是评估候选人的重要标准。本文介绍了它们的基础知识、常见问题和应对策略。多线程在同一进程中并发执行,多进程通过进程间通信实现并发,协程则使用`asyncio`进行轻量级线程控制。面试常遇到的问题包括并发并行混淆、GIL影响多线程性能、进程间通信不当和协程异步IO理解不清。要掌握并发模型,需明确其适用场景,理解GIL、进程间通信和协程调度机制。
28 0
|
7天前
|
API Python
Python模块化编程:面试题深度解析
【4月更文挑战第14天】了解Python模块化编程对于构建大型项目至关重要,它涉及代码组织、复用和维护。本文深入探讨了模块、包、导入机制、命名空间和作用域等基础概念,并列举了面试中常见的模块导入混乱、不适当星号导入等问题,强调了避免循环依赖、合理使用`__init__.py`以及理解模块作用域的重要性。掌握这些知识将有助于在面试中自信应对模块化编程的相关挑战。
21 0
|
9天前
|
Python
python学习-函数模块,数据结构,字符串和列表(下)
python学习-函数模块,数据结构,字符串和列表
49 0
|
9天前
05-python之函数-函数的定义/函数的参数/函数返回值/函数说明文档/函数的嵌套使用/函数变量的作用域
05-python之函数-函数的定义/函数的参数/函数返回值/函数说明文档/函数的嵌套使用/函数变量的作用域
|
10天前
|
Python
python学习10-函数
python学习10-函数
|
14天前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。

推荐镜像

更多