python的open函数使用案例代码
作者:静静超爱满满 发布时间:2022-01-20 16:41:30
在python中使用open函数对文件进行处理。
1.open()
python打开文件使用open()函数,返回一个指向文件的指针。该函数常用以下三个参数。
1.1 参数1
目标文件的路径+名字。最好使用r"路径"这种原始字符串写法,防止有转义字符影响实际路径。
1.2 参数2
操作文件的方式mode=‘方式’。mode=可以省略。下面对操作文件的方式进行详细说明:
(1)r
以只读方式打开文件。文件的指针将会放在文件的开头。这是open默认模式。如果文件不存在,会报错。
(2)rb
以二进制只读方式打开一个文件。文件指针将会放在文件的开头。注意这种方式不能使用encoding,不然会报错。
同样的内容使用一般方式和二进制的方式打开。
fp = open(r"E:\test.txt",'r',encoding='utf-8')
content = fp.readline()
print(content)
输出:加油,好好干!
fp = open(r"E:\test.txt",'rb')
content = fp.readline()
print(content)
输出:b’\xe5\x8a\xa0\xe6\xb2\xb9\xef\xbc\x8c\xe5\xa5\xbd\xe5\xa5\xbd\xe5\xb9\xb2\xef\xbc\x81’
(3)r+
以读写方式打开一个文件。文件指针将会放在文件的开头。直接写入会覆盖文件开头的内容。
原始内容:
加油,好好干!别放弃
fp = open(r"E:\test.txt",'r+',encoding='utf-8')
fp.write("开心吧")
fp.close()
fp = open(r"E:\test.txt", 'r', encoding='utf-8')
content = fp.readline()
print(content)
fp.close()
执行后:
开心吧好好干!别放弃
(4)rb+
以二进制读写方式打开一个文件。文件指针将会放在文件的开头。
(5)w
以写入打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。
(6)wb
以二进制写入方式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。
(7)w+
以读写方式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。
原始内容:
开心吧好好干!别放弃
fp = open(r"E:\test.txt",'w+',encoding='utf-8')
fp.write("认真一点")
fp.close()
fp = open(r"E:\test.txt", 'r', encoding='utf-8')
content = fp.readline()
print(content)
fp.close()
执行后直接覆盖所有原始内容:
认真一点
(8)wb+
以二进制读写格式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。
(9)a
以追加方式打开一个文件。如果文件已存在,文件指针将会放在文件结尾。即:新的内容将会被追加到已有的内容之后。如果该文件不存在,则创建新文件可用于写入。注意,不能读,读会出错。
(10)a+
以读写方式打开一个文件。如果文件已存在,文件指针将会放在文件结尾。即:新的内容将会被追加到已有的内容之后。如果该文件不存在,则创建新文件可用于读写。
原始内容:
认真一点
fp = open(r"E:\test.txt",'a+',encoding='utf-8')
fp.write("你就离成功近一点")
fp.close()
fp = open(r"E:\test.txt", 'r', encoding='utf-8')
content = fp.readline()
print(content)
fp.close()
执行后追加:
认真一点你就离成功近一点
这时候,指针放在文件尾部,直接读取会没有内容,需要将指针移动(seek)到文件的头部:
with open(r"E:\test.txt",'a+',encoding='utf-8') as fp:
fp.seek(0,0)
content = fp.readline()
print(content)
(11)ab+
以二进制读写方式打开一个文件。如果文件已存在,文件指针将会放在文件结尾。即:新的内容将会被追加到已有的内容之后。如果该文件不存在,则创建新文件可用于读写。
1.3 参数3
编码的方式,常用utf-8,gbk等。如:encoding=‘utf-8’
如果是二进制的方式,这个参数不需要填,填了还会报错。
2.with open() as
这是open()的一种升级用法,控制块结束的时候文件会自动关闭,不需要显示地调用close()关闭文件。这种方法更方便使用,所以推荐大家使用这种方法。
with open(r"E:\test.txt",'r',encoding='utf-8') as fp:
content = fp.readlines()
3.open函数常用的方法
3.1 读
文件内容:
认真一点你就离成功近一点
啊啊啊啊啊啊啊啊啊啊啊
fffffffffff
(1)read()
一次性读取整个文件内容,将整个文件放到一个字符串中。使用read(size)方法,返回文件中的前size个字符:
content = fp.read()
输出:
认真一点你就离成功近一点
啊啊啊啊啊啊啊啊啊啊啊
fffffffffff
(2)readline()
每次读取一行内容。
content = fp.readline()
输出:
认真一点你就离成功近一点
(3)readlines()
一次性读取整个文件内容到一个迭代器以供我们遍历(读取到一个list中,以供使用,比较方便)
content = fp.readlines()
输出;
[‘认真一点你就离成功近一点\n’, ‘啊啊啊啊啊啊啊啊啊啊啊\n’, ‘fffffffffff’]
3.2 写
(1)write()
fp.write()的参数必须是一个字符串,就是你要写入文件的内容.
(2)writelines()
fp.writelines()的参数可以是列表,也可以是字符串。
3.3 获取文件读写类型
如果文件可写,则 fp.writable() 方法返回 True,否则返回 False。
如果文件是可读的,则 fp.readable() 方法返回 True,否则返回 False。
比如:以w方式打开的文件,fp.readable()返回False,fp.writable()返回True。
3.4 指针移动
seek
f.seek(偏移量,[起始位置])
起始位置的三种取值:0文件开头,1当前位置,2文件末尾
例子见1.3中(10)a+
3.5 当前指针位置
tell()返回一个整数,表示当前文件指针的位置(就是到文件头的字节数).
如果是utf-8编码,那么一个中文字符占用三个字节,一个英文字符占用一个字节。如果是gbk编码,那么一个中文字符占用两个字节,一个英文字符占用一个字节。
with open(r"E:\test.txt",'a+',encoding='utf-8') as fp:
content = fp.tell()
print(content)
打印:30
3.6 truncate
truncate(size) 方法用于截断文件,如果指定了可选参数 size,则表示截断文件为 size 个字符。 如果没有指定 size,则从当前位置起截断;截断之后 size 后面的所有字符被删除。
来源:https://blog.csdn.net/liujingliuxingjiang/article/details/120744826
猜你喜欢
- python 中有6大标准类型:数字(Number)字符串(String)列表(List)元组(Tumple)集合(Set)字典(Dicti
- 由于工作中涉及到生日编辑资料编辑,然后自己改了一下代码:<html><head> <meta charset=
- 一、原型模式原型是相对于复制、克隆而言的,但是不同于模板,模板创造出的东西是一模一样,而原型创造出的东西是允许存在差异化和个性化的。原型模式
- if exists (select * from dbo.sysobjects where id = object_id(N'[db
- 可用下列代码实现:<% set conn=server.creatobject("ADODB
- think-queue是ThinkPHP官方提供的一个消息队列服务,是专门支持队列服务的扩展包。think-queue消息队列适用于大并发或
- PHP mysqli_stat() 函数创建 SSL 连接:<?php// 假定数据库用户名:root,密码:123456,数据库:c
- 提高SQL执行效率的几点建议:◆尽量不要在where中包含子查询;关于时间的查询,尽量不要写成:where to_char(dif_date
- 上四篇的内容是把常用的XHTML标签拿出来介绍了一下,不是很详细。不过没关系,重点是要能先知道用他们,以后深入了再去细细研究更为详细的特性以
- 表单外观的美化很多时候,我们仅仅为了实现数据采集这个功能来使用表单,常看到的表单都是“千人一面”、毫无
- 此文章主要介绍的是MySQL数据库的字符(串)的实际操作步骤,我们大家都知道MySQL数据库的字符(串)在实际操作是经常被用到了,所以你对其
- <!--#include file="strcheck.asp"--> <% '笔者在写程序的
- 软硬件环境OS X EI CapitanPython 3.5.1mysql 5.6前言在开发中经常涉及到数据库的使用,而python对于数据
- 一、python判断文件和文件夹是否存在、创建文件夹 >>> import os>>> os.
- 高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法
- 浏览器经常Cache你的页面,这是一个很麻烦的问题,下面先提出几种方案来解决一般的问题:(把下面的代码加入到asp程序的最开始位置)<
- 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心, mysql已经为我们提供了这样一个功
- <% dim total(7,2) total(1,1)=200 total(2,1)=800
- 现在不写asp了这次我将我以前沉淀下的一些函数库共享给大家,希望能给初学者启示,给老手也有所帮助吧.先谢谢大家支持! <%@
- 问题怎样捕获代码中的所有异常?解决方案想要捕获所有的异常,可以直接捕获 Exception 即可:try: ...except