【Python open()函数】

2024-01-30 14:23:30 浏览数 (1)

前言:

在编程的世界里,让我们聚焦于一项至关重要的任务——文件操作。Python,作为一门强大而灵活的编程语言,提供了各种工具来处理文件。而今,我们将深入研究其中一项强大的工具——open() 函数。这个函数在Python中担当着打开文件的门户,为我们展开了探索、读取和修改文件内容的广阔领域。让我们一同踏上这段关于文件操作的探险之旅,揭开 open() 函数的神秘面纱。

Python open()函数

一、文件操作的流程:

#1. 打开文件,得到文件句柄并赋值给一个变量 #2. 通过句柄对文件进行操作 #3. 关闭文件 具体步骤如下:

代码语言:javascript复制
f=open('test.txt',encoding='utf-8')   #打开文件
data=f.read()            #文件操作
print(data)
f.close()          #关闭文件

二、open()函数的具体用法:

open函数最常用的使用方法如下:文件句柄 = open(‘文件路径’, ‘模式’,编码方式)。

1、关于文件路径

#文件路径:主要有两种,一种是使用相对路径,想上面的例子就是使用相对路径。 #另外一种就是绝对路径,像’ C:/Users/shu/Desktop/python/test.txt’

2、关于打开模式:

r 以只读方式打开文件。这是默认模式。文件必须存在,不存在抛出错误

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

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

3、关于编码方式:

#1.win系统默认是gbk编码的,所以桌面生成的TXT之类的都是gbk编码的。 #2.出现乱码正常都是原文件的编码方式和打开指定的编码不一致所致 文件编码详解:

字符编码定义了文本文件中字符如何映射到二进制数据,这在处理不同语言、不同字符集的文本时变得至关重要。Python 的 open() 函数中的 encoding 参数允许你指定所使用的字符编码。

默认编码: 如果不指定 encoding 参数,open() 函数将使用默认的系统编码。然而,为了增强可移植性和避免不同系统上的问题,最好明确指定文件的编码。

常见编码: UTF-8 是一种通用的、可变长度的编码,对于包含多种语言的文本非常适用。其他常见的编码包括UTF-16、ISO-8859-1等。

避免乱码: 指定正确的编码可以避免读取或写入文件时出现乱码的问题。特别是在处理非英语字符集、特殊符号或表情符号时,确保使用合适的编码至关重要。

异常处理: 在指定编码时,要注意处理可能出现的编码异常。例如,如果文件中包含了不符合指定编码的字符,可能会触发 UnicodeDecodeError。

代码语言:javascript复制
# 以UTF-8编码方式打开文件
with open('example.txt', 'r', encoding='utf-8') as file:
    content = file.read()
    # 对文件内容进行操作

三、关闭文件:

不要小看这一步,因为我们读取文件是把文科读取到内存中的,如果我们没关闭它,它就会一直占用系统资源,而且还可能导致其他不安全隐患。还有一种方法可以让我们不用去特意关注关闭文件。那就是 with open()

代码语言:javascript复制
with open('test.txt','a ') as f:
f.write('作者:仓央嘉措')
print(f.read())

结尾:

在本文的旅程中,我们探索了 Python 中 open() 函数的奥秘,它不仅仅是一个打开文件的简单工具,更是连接着我们代码与文件之间桥梁的关键。通过对这一函数的深入理解,我们能够更加灵活地操作文件,处理数据,实现更为复杂的任务。无论是初学者还是经验丰富的开发者,open() 函数都是值得深入研究的利器。愿你在文件操作的征途上,能够运用这一神奇工具,创造出令人惊艳的代码世界。让我们继续磨练技艺,不断探索,创造出更加优雅和高效的文件处理方案

0 人点赞