python之路(5)文件操作(open)
目录
- 前言
- 文件的打开模式
- 文件句柄的方法
- seek()方法介绍
前言
- 打开文件,得到文件句柄并赋值给一个变量
- 通过句柄对文件进行操作
- 关闭文件
f = open('demo.txt','r',encoding='utf-8')#获得文件句柄,指定编码格式,以可读的形式打开
data = f.read()
print(data)
f.close()#关闭文件
注:open()默认根据系统编码,默认以‘可读’(r)的形式打开文件
文件的打开模式
- 文件模式
- r,只读模式(文件必须存在,不然报错)
- w,只写模式(以这种模式打开,会清空文件的内容,文件不存在,则创建文件)
- x,只读模式(不存在创建,存在报错)
- a,追加模式
- “+”表示同时读写操作
- r+,读写
- w+,写读
- x+,写读
- a+,写读
- “b”表示以字节的方式操作(不能指定编码格式)
- rb
- wb
- xb
- ab
文件句柄的方法
readable():判断文件是否可读
writeable():判断文件是否可写
close():关闭文件句柄
tell():返回光标位置
flush():将内容存到硬盘中
read()
data = f.read()#返回得到文件内容
readline()
data = f.readline()#返回文件的一行内容
readlines()
data = f.readlines()#返回一个列表,每个元素为文件的每一行
write()
f.write('hello')#写入内容
writelines()
f.writelines(['chen\n','hua\n','li\n'])#写入一列内容
truncate()
注:文件必须要有写的操作
f.truncate(10)#截取文件前10个字节
"b"模式下的写操作
f = open('demo.txt','wb')
#必须将将内容转换成二进制的形式存入文件中
f.write(bytes('chen',encoding='utf-8'))
f.write('chen'.encode('utf-8'))
seek()方法介绍
注:只有read()的光标是以字符为单位,其他seek,tell,truncate都是以字节为单位移动;window下的换行符是(\r\n)
seek的三种模式(除了默认模式,文件要以‘b’的模式打开)
- 0,以文件开头作为起始位置(默认模式)
- 1,以上一次光标停留的位置作为起始位置
- 2,以结尾作为起始位置(位置参数要以负数的形式)
使用seek()方法读取日志文件最近一天的内容
2016/2/3 xxx做了什么事
2016/2/4 xxx做了什么事
2016/2/5 xxx做了什么事
2016/2/6 xxx做了什么事
2016/2/7 xxx做了什么事
2016/2/8 xxx做了什么事
2016/2/9 xxx做了什么事
2016/2/10 xxx做了什么事
2016/2/11 xxx做了什么事
2016/2/12 xxx做了什么事
2016/2/13 xxx做了什么事
2016/2/14 xxx做了什么事
2016/2/15 chen做了厉害的事
日志文件
方案一
f = open('日志文件','rb')
data = f.readlines()
print(data[-1].decode('utf-8'))
f.close()
缺点:readlines()会将文件组成一个大列表,占用大量内存
方案二
f = open('日志文件','rb')
offs = -5
while True:
f.seek(offs, 2)
data = f.readlines()
if len(data) > 1:
print('文件的最后一行是%s' % (data[-1].decode('utf-8')))
break
offs *=2
f.close()
python之路(5)文件操作(open)的更多相关文章
- 小白的Python之路 day2 文件操作
文件操作 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 ...
- python之路(五)-文件操作
文件操作无非两个,即:读.写 python 2.x: 文件句柄 = file('文件路径', '模式') python3.x: 文件句柄 = open('文件路径', '模式') 打开文件的模式有: ...
- python之路---08 文件操作
二十六. 文件 f = open(文件路径,mode = '模式',encoding = '编码格式') 1.基础 ① 读写时,主要看光标的位置 ②操作完成要写 f.close( ) f.f ...
- python成长之路五-文件操作
1,文件操作 f = open("D:\种子.txt",encoding="utf-8",mode="r") # 打开一个种子.txt文件, ...
- Python学习之路4 - 文件操作&编码转换
文件操作 文件操作大概分三步: 把文件打开. 操作文件. 把文件关上. 打开文件 打开文件用open()函数,打开成功后返回一个资源,具体语法如下. open(要打开的文件,打开方式,打开文件的格式, ...
- 第三章:Python基础の函数和文件操作实战
本課主題 Set 集合和操作实战 函数介紹和操作实战 参数的深入介绍和操作实战 format 函数操作实战 lambda 表达式介绍 文件操作函数介紹和操作实战 本周作业 Set 集合和操作实战 Se ...
- Python基础知识(八)----文件操作
文件操作 一丶文件操作初识 ###f=open('文件名','模式',编码): #open() # 调用操作系统打开文件 #mode #对文件的操作方式 #encoding # 文件的编码格式 存储编 ...
- Python基础7:文件操作
[ 文件操作] 1 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下: 昨夜寒蛩不住鸣. 惊回千里梦,已三更. 起来独自绕阶行. 人悄悄,帘外月胧 ...
- python函数基础 与文件操作
函数的定义 函数是通过赋值传递的,参数通过赋值传递给函数.def语句将创建一个函数对象并将其赋值给一个变量名,def语句的一般格式如下: def function_name(arg1,arg2[,.. ...
- Python 第三天 文件操作(2)
文件操作 操作文件时,一般需要经历如下步骤: 打开文件 操作文件 一.打开 文件句柄 = file('文件路径', '模式') 注:python中打开文件有两种方式,即:open(...) 和 fi ...
随机推荐
- PostgreSQL For Windows 全功能精简版
预览 精简部分 保留全部 PostgreSQL 相关功能 删除自带的 pgadmin 4 删除文档 删除开发用头文件 删除开发用静态连接库 删除 Stack Build 工具 写了一个管理数据库用的批 ...
- 测试面试话题8:测试人员如何让开发少写bug?
在测试过程中和不同开发合作,往往会发现一些bug都是大多数开发人员常出现的错误,为了帮助开发人员,也减少测试的重复工作量,非常有必要将以往出现的bug做整理,分析原因,让开发知道这些bug, 避免再次 ...
- 如何在element-UI 组件的change事件中传递自定义参数
以select为例,如果select写在循环里,触发change事件时可能不只需要传递被选中项的值,还要传递index过去,来改变同一循环中的其他标签的状态. 下面这样写是无效的: @change=& ...
- 【spring源码分析】IOC容器初始化(十)
前言:前文[spring源码分析]IOC容器初始化(九)中分析了AbstractAutowireCapableBeanFactory#createBeanInstance方法中通过工厂方法创建bean ...
- flask-cache报错No module named 'flask.ext;解决方案
找到flask-cache包中的jinja2ext.py,将from flask.ext.cache import make_template_fragment_key改为from flask_cac ...
- process.nextTick
回调函数同步执行 function asyncFake(data, callback) { if(data === 'foo') { callback(true); }else{ callback(f ...
- 获取Iframe页面高度并赋值给Iframe以及获取iframe里的元素
最近接手了别人的项目,别人用到了iframe,自己在实战中总结了一些关于iframe的小问题. 获取Iframe页面高度并赋值给Iframe Html <iframe name="co ...
- vue 追书神器
app.vue页面 初始化数据,通过调用vuex mutation里定义的方法 调用保存到localstorage中的书架信息.搜索历史记录.字体大小和皮肤 并把这些数据保存的vuex state中 ...
- Centos 7(linux)系统下如何给jar应用程序创建桌面快捷方式
1.创建系统自带的应用程序快捷方式 对于系统自带的应用程序,其桌面快捷方式存储的位置为以下三个目录中的其中一个: /usr/share/applications ~/.local/share/appl ...
- PyCharm中Django项目主urls导入应用中views的红线问题
PyCharm中Django项目主urls导入应用中views的红线问题 使用PyCharm学习Django框架,从项目的主urls中导入app中的views的时候,导入的包中下面有红线报错,但是却能 ...