文件读取:

 #文件读取方式一
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基础(文件操作)的更多相关文章

  1. python基础-文件操作

    一.文件操作 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作. 打开文件的模式有: r ,只读模式[默认模式,文件必须存在,不存在则抛出异 ...

  2. python基础-文件操作(10)

    一.什么是文件 等等这些都叫做文件,各种格式的.但不仅仅限制于这些. 二.文件的作用 大家应该听说过一句话:“好记性不如烂笔头”. 不仅人的大脑会遗忘事情,计算机也会如此,比如一个程序在运行过程中用了 ...

  3. Python基础--文件操作和集合

    这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件file.txt: 我们哭了 ...

  4. python 基础文件操作

    实时刷新到硬盘里 f= open('hh','w',encoding='utf8') f.write('gyftyftft') f.write('hghgh\njkkjk') f.flush()#实时 ...

  5. Python 基础 文件操作

    字符串与字节之间的转换 # utf-8 一个汉字 占三个字节 # gbk 一个汉字 占两个字节 # 字符串转换成字节 print(bytes('汉字', encoding='utf-8'))print ...

  6. python基础--文件操作实现全文或单行替换

    python修改文件时,使用w模式会将原本的文件清空/覆盖.可以先用读(r)的方式打开,写到内存中,然后再用写(w)的方式打开. 替换文本中的taste 为 tasting Yesterday whe ...

  7. Python基础————文件操作

    文件操作 4.1 文件基本操作 obj = open('路径',mode='模式',encoding='编码') # 表示要干嘛 读 还是写 obj.write() #写什么内容 obj.read() ...

  8. Python基础—文件操作(Day8)

    一.文件操作参数 1.文件路径 1)绝对路径:从根目录开始一级一级查找直到找到文件. f=open('e:\文件操作笔记.txt',encoding='utf-8',mode='r') content ...

  9. python基础 — 文件操作

    读取键盘输入 Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘.如下: raw_input input raw_input函数 raw_input([prompt]) 函数从 ...

  10. Python基础-文件操作(七)

    一.文件基本操作 1.open 打开模式: w模式 写模式write 文件不存在时会创建文件,如果文件已存在则会清空文件 r模式 读模式read 文件不存在就报错,存在则准备读取文件 a模式 追加模式 ...

随机推荐

  1. app后端设计(7)-- 项目管理

    移动互联网行业是个快速发展的行业,需求不断变化,产品更新快.基于移动互联网的以上特点,在开发产品的过程中,我们放弃了传统的瀑布流开发模型,引入了精益的理念和scrum这个敏捷开发框架,下面谈谈实施过程 ...

  2. 解决jQuery的$符号的冲突问题

    强大的jQuery框架在设计的时候不仅考虑到自己的符号定义问题,还想到了与其他框架的和平共处问题,(给别人留条路也是写在给自己留路),设计者以博大的胸怀和包罗万象的设计理念赋予了jq顽强的生命力. 废 ...

  3. 「SDOI 2018」反回文串

    题目大意: 求字符集大小为$k$长度为$n$的经循环移位后为回文串的数量. 题解: 这题是D1里最神的吧 考虑一个长度为$n$回文串,将其循环移位后所有的串都是满足要求的串. 但是显然这样计算会算重. ...

  4. 【codeforces 698C】LRU

    题目链接: http://codeforces.com/problemset/problem/698/C 题目大意: n个物品,k个格子,第i个物品每次被选取的概率为$p_{i}$,如果格子里没有该物 ...

  5. BZOJ_4320_ShangHai2006 Homework_分块

    BZOJ_4320_ShangHai2006 Homework_分块 Description   1:在人物集合 S 中加入一个新的程序员,其代号为 X,保证 X 在当前集合中不存在.    2:在当 ...

  6. 从零搭建基于golang的个人博客网站

    原文链接 : http://www.bugclosed.com/post/14 从零搭建个人博客网站需要包括云服务器(虚拟主机),域名,程序环境,博客程序等方面.本博客 就是通过这几个环节建立起来的, ...

  7. centos7中输入ifconfig出现ens33,没有eth0

    vmware安装的centos7中没有出现eth0网卡,也没有ip,不能上网,输入ifconfig后如下图 解决办法 1.编辑网卡的配置文件 vi /etc/sysconfig/network-scr ...

  8. python+appium 【已解决】真机运行appium报错“WebDriverException: Message: A new session could not be created. (Original error: Command failed: C:\Windows\system32\cmd.exe /s /c.......详见内文

    问题报错提示: selenium.common.exceptions.WebDriverException: Message: A new session could not be created. ...

  9. Spring Boot 2.0 图文教程 | 集成邮件发送功能

    文章首发自个人微信公众号: 小哈学Java 个人网站: https://www.exception.site/springboot/spring-boots-send-mail 大家好,后续会间断地奉 ...

  10. 从mysql中拿到的数据构造为列表

    最近测试接口遇到一个问题,用python2.7从mysql中取到的数据是元祖类型的,元祖内部的元素也是一个元祖(并且部分元素的编码格式是unicode的): 类似这样: ((10144, u''), ...