目录

  • 前言
  • 文件的打开模式
  • 文件句柄的方法
  • 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. DIY手机锂电池万能充

    今天翻出来一个诺基亚的旧手机,试了一下,无法开机,应该了电池亏电了.可惜手头没有充电器,无法给手机充电. 活人岂能让尿憋死?回想了一下以前用过的手机万能充的样式(这里暴露年龄了) 根据家中现成的材料, ...

  2. Tomcat设置cmd窗口的title属性

    说明:官网下载tomcat之后,双击bin目录下的startup.bat文件,即可运行tomcat:linux下面运行startup.sh. 但是如果测试服务器上面搭建了多个项目,则启动之后窗口一样, ...

  3. 【Teradata SQL】行转列函数TDStats.udfConcat

    TDstats.udfConcat为Teradata自带UDF,定义如下: show function tdstats.udfconcat; REPLACE FUNCTION tdstats.UDFC ...

  4. 企业移动化?AppCan教你正确的打开方式

    七分选型.三分软件.的确,在过去的企业移动化进程中,由于选型失败导致信息系统实施失败的案例屡见不鲜.而在当今的移动互连和大数据时代,移动化已经是企业必然的选择. 那么,什么是企业移动化呢?怎样才是企业 ...

  5. [LeetCode] 19. 删除链表的倒数第N个节点

    题目链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/ 题目描述: 给定一个链表,删除链表的倒数第 n 个节点, ...

  6. 查看linux的公网地址

    在搭建环境时,我们需要搭建公网IP地址,因此我们可以使用以下命令查看公网IP地址 curl ifconfig.me 同时我们可以通过以下命令查看公网地址 curl cip.cc

  7. springboot配置SSL自签名证书

    1.证书生成 每一个JDK或者JRE里都有一个工具,叫做:keytool,安装了jdk或jre之后,配置好JAVA环境之后,就可以直接在控制台使用该命令生成自签名证书: 在控制台输入: keytool ...

  8. Day11 空时编码理论之正交空时分组码和垂直分层空时编码

    空时编码的用途: 一是获得分集增益(STBC,通过不同的发射天线发送相同传输信号的不同副本,实现空间分集,提高传输质量): 二是获得复用增益(V-BLAST在同一时隙,将不同的符号通过不同的天线发射出 ...

  9. MySQL--7种join连接

    一,定义: 1)LEFT JOIN / LEFT OUTER JOIN:左外连接 左向外连接的结果集包括:LEFT OUTER子句中指定的左表的所有行,而不仅仅是连接列所匹配的行.如果左表的某行在右表 ...

  10. Appium 客户端类库

    Appium 支持以下语言的客户端类库: 语言 Ruby Python Java JavaScript PHP C# Objective-C 锁定注意,一些方法类似 endTestCoverage() ...