网站首页 > 技术文章 正文
利用open()函数,可以打开一个文件,例如txt文件,或者是图片等,不过打开的方式有些区别,为了便于理解,我们采用打开txt文件的方式去学习这个函数。
被打开的文件在Python中创建了一个file对象,可以用file对象的方法进行操作。
语法:
open(name[, mode[, buffering]])
参数:
- name : 一个包含了你要访问的文件名称的字符串值。
- mode : mode 决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。【在文章后,附上Mode表,可以根据需要选择对应的打开模式,例如打开图片往往是二进制的形式】
- buffering : 如果 buffering 的值被设为 0,就不会有寄存。如果 buffering 的值取 1,访问文件时会寄存行。如果将 buffering 的值设为大于 1 的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。
用法:
我们可以先从文件的写入开始:
f = open('mytxt.txt','w',encoding='utf-8')
mytxt = '''这是一个用于测试的文件夹
hello
我是鱼毛
'''
f.write(mytxt)
f.close()
上述代码在当前目录以写入(w)的方式打开一个名为"mytxt.txt"的文件,如果不存在,则会创建这个文件,指定编码为utf-8,然后利用write方法写入mytxt的内容,最后利用f.close()关闭文件。代码执行后,当前目录下生成了一个txt文件如下:
同样,我们也可以在python中将这个文件读取进来,代码如下:
f = open('mytxt.txt','r',encoding='utf-8')
mytxt = f.read()
print(mytxt)
f.close()
# 这是一个用于测试的文件夹
# hello
# 我是鱼毛
在上面的代码中,我们就完成了文件的读取操作,以只读(r)的方式打开文件夹,指定编码为utf-8,然后利用read()方法将文件内容全部读取到mytxt中,进行打印。
读取文件除了read()读取所有内容保存为字符串之外,还有readline()读取一行,readlines()读取所有内容,保存为一个列表,每行为列表中的一个元素。
通过上面两个例子,我们打开文件后,都需要用close去关闭,因此,open函数的操作流程大致如下:
f = open()
文件操作
f.close()
最后,附上不同的mode以及对应的描述。
不同的打开模式
模式 | 描述 |
t | 文本模式 (默认)。 |
x | 写模式,新建一个文件,如果该文件已存在则会报错。 |
b | 二进制模式。 |
+ | 打开一个文件进行更新(可读可写)。 |
U | 通用换行模式(不推荐)。 |
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
小结
open()函数构建起了python程序与程序之外文件沟通的一个桥梁,需要掌握他的具体用法,完成文件的读写操作,尤其记得在对文件操作完成之后需要将文件close。
猜你喜欢
- 2024-11-22 正点原子I.MX6U嵌入式Linux C应用编程:第二章《文件I/O基础》
- 2024-11-22 如何将Python函数输出内容同时打印到屏幕和文件
- 2024-11-22 3个重点,20个函数分析,浅析FFmpeg转码过程
- 2024-11-22 Linux驱动基础篇:hello驱动
- 2024-11-22 Python自带的库(open函数)读写txt、csv、json、XML、Excel文件
- 2024-11-22 UG NX OPEN二次开发实例:UF,C语言编程,创建圆柱体,API文档翻译
- 2024-11-22 openGauss SEQUENCE函数
- 2024-11-22 Python文件操作的步骤
- 2024-11-22 Python读取与写入Excel模块:openpyxl
- 2024-11-22 PHP imap_open函数任意命令执行漏洞
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)