当前位置: 首页 > news >正文

沈阳模板建站定制网址查询域名

沈阳模板建站定制,网址查询域名,安装wordpress错误,广西圣泰建设工程有限公司网站Python 文件读写笔记整理 参数说明 open(path, flag[, encoding][,errors]) path:要打开文件的路径 flag:打开方式 encoding:编码方式 errors:错误处理 Flag打开方式表 模式 描述 r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 rb 以二进制格…

Python 文件读写笔记整理

 

参数说明

open(path, flag[, encoding][,errors])

path:要打开文件的路径

flag:打开方式

encoding:编码方式

errors:错误处理

Flag打开方式表

模式

描述

r

以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

rb

以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。

r+

打开一个文件用于读写。文件指针将会放在文件的开头。

rb+

以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。

w

打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb

以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

w+

打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb+

以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

a

打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

ab

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

a+

打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

ab+

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

打开文件

设置测试文件

创建一个test.txt文件,并在其中输入一些内容。

如下:

打开文件示例

使用r(只读方式)打开test.txt,设置打开编码格式为utf-8。

示例如下:

# 设置文件路径
path = 'test.txt'f = open(path, 'r', encoding='utf-8')

读取忽略错误

可通过设置errors=’ignore’来忽略读取的错误。

示例如下:

# errors=ignore 忽略错误
f = open(path, 'r', encoding='utf-8', errors='ignore')

读取文件

读取全部内容

使用文件的read()方法,可用于读取文件中所有内容。

示例如下:

f = open(path, 'r', encoding='utf-8')
print(f.read())# 执行结果
# 及至始皇,奋六世之余烈,振长策而御宇内,吞二周而亡诸侯,履至尊而制六合,执敲扑而鞭笞天下,威振四海。
# 南取百越之地,以为桂林、象郡;百越之君,俯首系颈,委命下吏。
# 乃使蒙恬北筑长城而守藩篱,却匈奴七百余里。
# 胡人不敢南下而牧马,士不敢弯弓而报怨。

 

忽略错误应用

当出现因为读取文件编码格式产生错误时,可使用errors=ignore来忽略报错,继续读取。

示例如下:

f = open(path, 'r', encoding='gbk')
print(f.read())

因为编码文件为utf-8格式,但使用gbk时会抛出错误:

Traceback (most recent call last):File "E:\lianxipy\day3\文件读写.py", line 17, in <module>print(f.read())
UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 2: illegal multibyte sequence

使用忽略错误

示例如下:

f = open(path, 'r', encoding='gbk', errors='ignore')
print(f.read())# 执行结果
# 銆銆鍙婅嚦濮嬬殗锛屽嬪叚涓栦箣浣欑儓锛屾尟闀跨瓥鑰屽尽瀹囧唴锛屽悶浜屽懆鑰屼骸璇镐警锛屽饱鑷冲皧鑰屽埗鍏鍚堬紝鎵ф暡鎵戣岄灜绗炲ぉ涓嬶紝濞佹尟鍥涙捣銆
# 鍗楀彇鐧捐秺涔嬪湴锛屼互涓烘傛灄銆佽薄閮★紱鐧捐秺涔嬪悰锛屼刊棣栫郴棰堬紝濮斿懡涓嬪悘銆
# 涔冧娇钂欐伂鍖楃瓚闀垮煄鑰屽畧钘╃憋紝鍗村寛濂翠竷鐧句綑閲屻
# 鑳′汉涓嶆暍鍗椾笅鑰岀墽椹锛屽+涓嶆暍寮寮撹屾姤鎬ㄣ

因为编码格式的问题,虽然也能读取出来但都是乱码。

读取整行

读取整行,包括“\n”字符。

示例如下:

print(f.readline())# 执行结果
# 及至始皇,奋六世之余烈,振长策而御宇内,吞二周而亡诸侯,履至尊而制六合,执敲扑而鞭笞天下,威振四海。

读取指定字符数

可使用文件的read(num)或readline(num)方法中传递num参数来获取指定字符数。

示例如下:

print(f.read(6))
# 执行结果
#  及至始皇 # 测试文件开头处有两个空格print(f.readline(6))
# 执行结果
# ,奋六世之余

读取所有行

读取所有行,并返回列表。

示例如下:

print(f.readlines())# 执行结果
# ['\u3000\u3000及至始皇,奋六世之余烈,振长策而御宇内,吞二周而亡诸侯,履至尊而制六合,执敲扑而鞭笞天下,威振四海。\n',
# '南取百越之地,以为桂林、象郡;百越之君,俯首系颈,委命下吏。\n',
# '乃使蒙恬北筑长城而守藩篱,却匈奴七百余里。\n',
# '胡人不敢南下而牧马,士不敢弯弓而报怨。']

若给定的数字大于0,返回实际size字节行数。

示例如下:

print(f.readlines(60))
# 执行结果
# ['\u3000\u3000及至始皇,奋六世之余烈,振长策而御宇内,吞二周而亡诸侯,履至尊而制六合,执敲扑而鞭笞天下,威振四海。\n', '南取百越之地,以为桂林、象郡;百越之君,俯首系颈,委命下吏。\n']

设置文件当前位置

使用file.seek(offset) 设置文件读取的当前位置。

示例如下:

print(f.read(3))
print(f.read(3))# 设置读取当前位置回到开始位置
f.seek(0)
print(f.read(3))# 执行结果
#   及
# 至始皇
#   及

关闭文件

file.close() 关闭文件。关闭后文件不能再进行读写操作。

示例如下:

print(f.read())
f.close()# 关闭文件后在读取文件
print(f.read())

执行结果:

  及至始皇,奋六世之余烈,振长策而御宇内,吞二周而亡诸侯,履至尊而制六合,执敲扑而鞭笞天下,威振四海。
南取百越之地,以为桂林、象郡;百越之君,俯首系颈,委命下吏。
乃使蒙恬北筑长城而守藩篱,却匈奴七百余里。
胡人不敢南下而牧马,士不敢弯弓而报怨。
Traceback (most recent call last):File "E:\lianxipy\day3\文件读写.py", line 71, in <module>print(f.read())
ValueError: I/O operation on closed file.

写入文件

字符串写入

file.write(str) 将字符串写入文件,返回的是写入的字符长度。

示例如下:

path = 'test.txt'
f = open(path, 'a+', encoding='utf-8')
print(f.write("过秦论\n"))# 文件内容会首先写入缓冲区 等需要关闭后 内容才会写入文件
f.close()

序列字符串写入

file.writelines(sequence) 向文件写入一个序列字符串列表。

如果需要换行则要自己加入每行的换行符。

示例如下:

path = 'test.txt'
f = open(path, 'a+', encoding='utf-8')
sequence = ["过\n", "秦\n", "论\n"]
print(f.writelines(sequence))# 文件内容会首先写入缓冲区 等需要关闭后 内容才会写入文件
f.close()

文件写入缓冲区验证

使用休眠程序来演示不关闭程序时,内容只是写入缓冲区,而不是写入文件。

示例如下:

path = 'test.txt'
f = open(path, 'w', encoding='utf-8')f.write('张三有两个哥哥')# 使用休眠程序 来演示不关闭程序时 内容不会写入文件
num = 1
while num < 10:time.sleep(1)num += 1print(num)continue
f.close()

可通过查看test.txt发现在10秒后,while循环退出后才写入到文件中,内容之前一直存在缓冲区。

刷新缓冲区

内容写入文件的三种原因:

1.文件关闭

2.缓冲区空间装满了,自动刷新

3.刷新缓冲区

下面试一下主动刷新缓冲区。

示例如下:

path = 'test.txt'
f = open(path, 'w', encoding='utf-8')
f.write("--- START --- \n")
num = 1
while num < 10:time.sleep(1)num += 1# 刷新缓冲区f.flush()f.write("这是刷新缓冲区 %d \n" % num)print(num)continue
f.write("--- END -- \n")
f.close()

效果:

可查看到休眠程序并没有影响到文件的每秒写入内容。

文件读写完整过程

一个文件读写完整过程:

设置路径、读写方式、编码方式及忽略错误。

还需要把对文件的操作进行防止异常处理,文件打开后正常操作结束后需要关闭文件,但有些错误还是会抛出,无法向下执行关闭处理;所以需要异常处理的finally无论是否报错都要执行关闭文件。

示例如下:

path = 'test.txt'
# 打开文件
f = open(path, 'r+', encoding='utf-8', errors='ignore')
try:# 对文件进行读写操作print(f.read())print(f.write('过秦论'))
finally:# 关闭文件f.close()

优化

优化为使用with open() as打开文件,

这些try-finally已经封装到操作中。

如果出现异常后会直接关闭文件,不会丢失之前写入的内容;

且只使用一行就可以处理。

示例如下:

path = 'test.txt'
with open(path, 'r+', encoding='utf-8', errors='ignore') as f:print(f.read())print(f.write('过秦论'))

总结

主要是python 文件读写的方法、参数、整体过程及其示例的笔记整理。

http://www.15wanjia.com/news/6712.html

相关文章:

  • 免费源码资源分享网seo云优化方法
  • 外贸商城网站制作公司广告设计网站
  • 哪个企业做网站全网整合营销外包
  • 响应式网站 宽度百度地图优化
  • 网站的ab测试怎么做app注册推广任务平台
  • 做python项目的网站seo指的是什么
  • 广东阳江发布最新消息东莞百度seo新网站快速排名
  • 怎么查网站建设时间公司推广渠道
  • 160 作者 网站建设 amp百度推广登录
  • 湖南电子科技网站建设谷歌推广培训
  • 无锡网站建设 微信视频广告
  • 校园网站建设资金来源有营销公关
  • 网站排名优化推广公司公司网站域名怎么注册
  • 四川成都网站建设seo关键词优化怎么做
  • 纯前端网站怎么做rest宁波优化系统
  • 17网站一起做网店质量怎么样北京seo优化诊断
  • 哪些网站适合推广网站推广什么意思
  • 吴中网站开发建设多少钱站长工具seo综合查询可以访问
  • 网站的空间域名seo提高网站排名
  • 微企免费网站建设阜平网站seo
  • 襄阳市建设委员网站泽成杭州seo网站推广排名
  • 哪个网站可以做室内设计口碑营销案例2022
  • 莱芜地板街50一次北京网站优化公司
  • 网站qq聊天代码网络营销与直播电商好就业吗
  • wordpress 多站点 主站点搜索引擎优化哪些方面
  • 经营网站的备案网络营销推广方案范文
  • 网络营销环境seo站长助手
  • 芜湖市建设工程网站维护公告域名大全查询
  • 怎么给幼儿园做网站最近几天的新闻
  • 深圳做手机网站建设怎么推广自己的网站?