目录

  • 前言
  • 文件的打开模式
  • 文件句柄的方法
  • seek()方法介绍

前言

  1. 打开文件,得到文件句柄并赋值给一个变量
  2. 通过句柄对文件进行操作
  3. 关闭文件

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)的更多相关文章

  1. 小白的Python之路 day2 文件操作

    文件操作 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 ...

  2. python之路(五)-文件操作

    文件操作无非两个,即:读.写 python 2.x: 文件句柄 = file('文件路径', '模式') python3.x: 文件句柄 = open('文件路径', '模式') 打开文件的模式有: ...

  3. python之路---08 文件操作

    二十六.   文件 f = open(文件路径,mode = '模式',encoding = '编码格式') 1.基础 ① 读写时,主要看光标的位置 ②操作完成要写    f.close( ) f.f ...

  4. python成长之路五-文件操作

    1,文件操作 f = open("D:\种子.txt",encoding="utf-8",mode="r") # 打开一个种子.txt文件, ...

  5. Python学习之路4 - 文件操作&编码转换

    文件操作 文件操作大概分三步: 把文件打开. 操作文件. 把文件关上. 打开文件 打开文件用open()函数,打开成功后返回一个资源,具体语法如下. open(要打开的文件,打开方式,打开文件的格式, ...

  6. 第三章:Python基础の函数和文件操作实战

    本課主題 Set 集合和操作实战 函数介紹和操作实战 参数的深入介绍和操作实战 format 函数操作实战 lambda 表达式介绍 文件操作函数介紹和操作实战 本周作业 Set 集合和操作实战 Se ...

  7. Python基础知识(八)----文件操作

    文件操作 一丶文件操作初识 ###f=open('文件名','模式',编码): #open() # 调用操作系统打开文件 #mode #对文件的操作方式 #encoding # 文件的编码格式 存储编 ...

  8. Python基础7:文件操作

    [ 文件操作] 1 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下: 昨夜寒蛩不住鸣. 惊回千里梦,已三更. 起来独自绕阶行. 人悄悄,帘外月胧 ...

  9. python函数基础 与文件操作

    函数的定义 函数是通过赋值传递的,参数通过赋值传递给函数.def语句将创建一个函数对象并将其赋值给一个变量名,def语句的一般格式如下: def function_name(arg1,arg2[,.. ...

  10. Python 第三天 文件操作(2)

    文件操作 操作文件时,一般需要经历如下步骤: 打开文件 操作文件 一.打开 文件句柄 = file('文件路径', '模式') 注:python中打开文件有两种方式,即:open(...) 和  fi ...

随机推荐

  1. ASP.NET Zero--WEB.HOST应用程序

    WEB.HOST应用程序 AspNet Zero解决方案包含一个额外的项目Web.Host,它将所有应用程序功能公开为API.因此,您可以从任何设备使用API​​.实际上,Web.Mvc项目也是这样做 ...

  2. 【续】5年后,我们为什么要从 Entity Framework 转到 Dapper 工具?

    前言 上一篇文章收获了 140 多条评论,这是我们始料未及的. 向来有争议的话题都是公说公的理,婆说婆的理,Entity Framework的爱好者对此可以说是嗤之以鼻,不屑一顾,而Dapper爱好者 ...

  3. easyui validatebox textbox 取值和赋值

    总结:表单元素使用easyui时,textbox和validatebox设置值和获取值的方式不一样 text-box设置值只能使用id选择器选择表单元素,只能使用textbox("setVa ...

  4. Python--day14(迭代器)

    今日主要内容 1.  带参装饰器 (了了解) 2.  迭代器(*****) 可迭代对象 迭代器对象 for迭代器 枚举对象 1.  带参装饰器 1.  通常,装饰器为被装饰的函数添加新功能,需要外界的 ...

  5. linux-高并发与负载均衡-lvs-功能配置介绍

    百度百科: LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一. ...

  6. JSON 的几种转换

    package com.qbskj.project.util; import java.io.IOException; import java.io.Writer; import org.spring ...

  7. 一、commander

    #!/usr/bin/env node const program = require('commander'); const colors = require('colors'); const pk ...

  8. Python爬虫beautifulsoup4常用的解析方法总结

    摘要 如何用beautifulsoup4解析各种情况的网页 beautifulsoup4的使用 关于beautifulsoup4,官网已经讲的很详细了,我这里就把一些常用的解析方法做个总结,方便查阅. ...

  9. servlet(1)

    servlet类分级: 1.ServletConfig接口类:理解为读取servlet配置的类,里面有四个抽象方法如下: ①getServletName:获取servlet在web.xml中的名字 ② ...

  10. SolidWorks装配体