Python基础(文件操作)
文件读取:
- #文件读取方式一
- f=open("a.txt","r+",encoding="utf8")
- data=f.read()
- print(data)
- f.close()
- #文件读取方式二
- with open("a.txt","r+",encoding="utf8") as f:
- data=f.read()
- print(data)
文件写入:
- #文件写入方式一
- f=open("b.txt","w",encoding="utf8")
- f.write("今天天气很好!")
- f.close()
- #文件写入方式二
- with open("a.txt","r+",encoding="utf8") as f:
- data=f.write()
- print(data)
标注**:使用with open() as f 方式读写数据时简化了f.close()的步骤
文件刷新(flush):
- with open("c.txt","r+",encoding="utf8") as f:
- f.write("今夜难以入睡!")
- f.flush()#将写在内存中的内容刷新到硬盘中
文件tell方法:
描述:此方法返回该文件中读出的文件/写指针的当前位置。
- with open("d.txt","r+",encoding="utf8") as f:
- data=f.readline()
- print(data)
- print(f.tell()) #显示当前光标所在的位置
文件seek方法:
描述:seek()用于移动文件读取指针到指定位置。
格式:file.seek(offset,whence)
offset:开始的偏移量,也就是代表需要移动偏移的字节数
whence:给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。whence值为空没设置时会默 认为0。
- >>> f=open("aaa.txt","w") #以只写的形式打开一个叫做aaa.txt的文件
- >>> f.write("my name is liuxiang,i am come frome china") #写入内容
- >>> f.close() #关闭文件
- >>> f=open("aaa.txt","r") #以只读打开文件
- >>> f.read() #读取内容
- 'my name is liuxiang,i am come frome china'
- >>> f.seek(3,0) #“0”代表从文件开头开始偏移,偏移3个单位
- >>> f.read(5) #从偏移之后的指针所指的位置(即“n”)开始读取5个字符
- 'name '
- >>> f.tell() #显示现在指针指在哪个位置(即“i”的位置)
- >>> f.readline() #读取这一行剩下的内容
- 'is liuxiang,i am come frome china'
- >>> f.seek(0,2) #“2”代表从末尾算起,“0”代表偏移0个单位
- >>> f.read()
- '' #因为是从末尾算起,内容已结束。所以读取内容为空
**seek方法读取日志文件最后一行:
- #日志文件
- 2018/12/23 kelvin login 登录淘宝
- 2018/12/25 Alex buy 购买商品
- 2018/12/28 kelvin buy 购买商品
- 2018/12/29 elvin login 登录网站
- 2018/12/29 kelvin nologin 退出登录
- 2018/12/31 bob foot 逛商城
- 2019/01/01 kelvin order 下单
- with open("日志文件","rb") as f:
- offset=-20 #定义一个偏移量用于在第一次倒序移动光标长度
- while True:
- f.seek(offset,2) #第一次倒序移动光标,移动长度为20个字节
- data=f.readlines() #读取从移动后的光标到日志结尾的每一行组成一个列表
- if len(data)>1: #如果取出的文件列表行数大于1,则说明肯定取到了最后一行
- print(data[-1].decode("utf8")) #取出列表中的最后一行,即为日志的最后一行
- break
- offset*=2 #如果取出的文件列表小于等于1,则说明取出的最后一行日志可能不完整,说明偏移量太小,因此扩大偏移量
遍历文件:
- #Author : Kelvin
- #Date : 2019/1/4 12:59
- #第一种(不推荐使用,因为会将文件所有内容加载到内存)
- f=open("日志文件","r+",encoding="utf8")
- for i in f.readlines():
- print(i)
- #第二种(推荐使用,只会一行一行读取,不会首先将所有文件内容加载到内存中)
- f=open("日志文件","r+",encoding="utf8")
- for i in f:
- print(i)
Python基础(文件操作)的更多相关文章
- python基础-文件操作
一.文件操作 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作. 打开文件的模式有: r ,只读模式[默认模式,文件必须存在,不存在则抛出异 ...
- python基础-文件操作(10)
一.什么是文件 等等这些都叫做文件,各种格式的.但不仅仅限制于这些. 二.文件的作用 大家应该听说过一句话:“好记性不如烂笔头”. 不仅人的大脑会遗忘事情,计算机也会如此,比如一个程序在运行过程中用了 ...
- Python基础--文件操作和集合
这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件file.txt: 我们哭了 ...
- python 基础文件操作
实时刷新到硬盘里 f= open('hh','w',encoding='utf8') f.write('gyftyftft') f.write('hghgh\njkkjk') f.flush()#实时 ...
- Python 基础 文件操作
字符串与字节之间的转换 # utf-8 一个汉字 占三个字节 # gbk 一个汉字 占两个字节 # 字符串转换成字节 print(bytes('汉字', encoding='utf-8'))print ...
- python基础--文件操作实现全文或单行替换
python修改文件时,使用w模式会将原本的文件清空/覆盖.可以先用读(r)的方式打开,写到内存中,然后再用写(w)的方式打开. 替换文本中的taste 为 tasting Yesterday whe ...
- Python基础————文件操作
文件操作 4.1 文件基本操作 obj = open('路径',mode='模式',encoding='编码') # 表示要干嘛 读 还是写 obj.write() #写什么内容 obj.read() ...
- Python基础—文件操作(Day8)
一.文件操作参数 1.文件路径 1)绝对路径:从根目录开始一级一级查找直到找到文件. f=open('e:\文件操作笔记.txt',encoding='utf-8',mode='r') content ...
- python基础 — 文件操作
读取键盘输入 Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘.如下: raw_input input raw_input函数 raw_input([prompt]) 函数从 ...
- Python基础-文件操作(七)
一.文件基本操作 1.open 打开模式: w模式 写模式write 文件不存在时会创建文件,如果文件已存在则会清空文件 r模式 读模式read 文件不存在就报错,存在则准备读取文件 a模式 追加模式 ...
随机推荐
- JS(总结)
基础 Javascript是一种弱类型语言,它分别有什么优点和缺点 弱类型语言:简单好用,更灵活多变.但是会牺牲性能,比如一些隐含的类型转换 强类型语言:类型转换的时候非常严格,,强类型语言是直接操纵 ...
- iOS推送:Java服务器端发送表情(绘文字)
http://blog.csdn.net/musou_ldns/article/details/8692520 功能的时候,客户要求能够给iphone发送表情图标,也就是绘文字. 手机环境:iOS5. ...
- Spring MVC温故而知新 – 请求映射RequestMapping
RequestMapping注解说明 @RequestMapping注解的作用将Web请求映射到特定处理程序类和/或处理程序方法,这个注解可以用于类或者方法上,并通过属性value指定请求路径.用在C ...
- monitor.go
package main import ( "fmt" "net/http" ) // 查询监控信息的接口 func statsHandler( ...
- BZOJ_3174_[Tjoi2013]拯救小矮人_贪心+DP
BZOJ_3174_[Tjoi2013]拯救小矮人_贪心+DP Description 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀 ...
- java中的数组二分法
数组二分法意在以较快的速度查找到某个值的下标位置. 二分法的核心思想:找到一个数组的中间位置值,判断某个数值是在这个中间值的左边还是右边,如果是左边,将中间位置之前进行二分,二分后,结束位置变为原始中 ...
- DCGAN 代码简单解读
之前在DCGAN文章简单解读里说明了DCGAN的原理.本次来实现一个DCGAN,并在数据集上实际测试它的效果.本次的代码来自github开源代码DCGAN-tensorflow,感谢carpedm20 ...
- 用python把一个txt文件中所有逗号,替换成空格?
string = "word 2 3 4 5 6 7" string = ",".join(string.split()) import numpy as np ...
- 带你由浅入深探索webpack4(二)
在前一篇文章已经介绍了webpack4从入门到一些核心常用的用法,大家可以从上一篇文章看起.带你由浅入深探索webpack4(一) 接着上一章,接下来我们会继续探讨webpack4中的各种实用用法,让 ...
- SpringCloud学习系列之六 ----- 路由网关Zuul基础使用教程
前言 在上篇中介绍了SpringCloud Config的完美使用版本,本篇则介绍基于SpringCloud(基于SpringBoot2.x,.SpringCloud Finchley版)中的路由网关 ...