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 ...
随机推荐
- ASP.NET Zero--WEB.HOST应用程序
WEB.HOST应用程序 AspNet Zero解决方案包含一个额外的项目Web.Host,它将所有应用程序功能公开为API.因此,您可以从任何设备使用API.实际上,Web.Mvc项目也是这样做 ...
- 【续】5年后,我们为什么要从 Entity Framework 转到 Dapper 工具?
前言 上一篇文章收获了 140 多条评论,这是我们始料未及的. 向来有争议的话题都是公说公的理,婆说婆的理,Entity Framework的爱好者对此可以说是嗤之以鼻,不屑一顾,而Dapper爱好者 ...
- easyui validatebox textbox 取值和赋值
总结:表单元素使用easyui时,textbox和validatebox设置值和获取值的方式不一样 text-box设置值只能使用id选择器选择表单元素,只能使用textbox("setVa ...
- Python--day14(迭代器)
今日主要内容 1. 带参装饰器 (了了解) 2. 迭代器(*****) 可迭代对象 迭代器对象 for迭代器 枚举对象 1. 带参装饰器 1. 通常,装饰器为被装饰的函数添加新功能,需要外界的 ...
- linux-高并发与负载均衡-lvs-功能配置介绍
百度百科: LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一. ...
- JSON 的几种转换
package com.qbskj.project.util; import java.io.IOException; import java.io.Writer; import org.spring ...
- 一、commander
#!/usr/bin/env node const program = require('commander'); const colors = require('colors'); const pk ...
- Python爬虫beautifulsoup4常用的解析方法总结
摘要 如何用beautifulsoup4解析各种情况的网页 beautifulsoup4的使用 关于beautifulsoup4,官网已经讲的很详细了,我这里就把一些常用的解析方法做个总结,方便查阅. ...
- servlet(1)
servlet类分级: 1.ServletConfig接口类:理解为读取servlet配置的类,里面有四个抽象方法如下: ①getServletName:获取servlet在web.xml中的名字 ② ...
- SolidWorks装配体