文章目录

  • 前言
  • 文件操作
    • 1. 文件操作基本手法读取日志文件最后一行数据
    • 2. 文件操作魔法的几种模式
      • ① r---只读模式
        • (1) read()---读取文件全部,若读完,后面再调用readline则将无法再读出
        • (2) readline()---一次使用读一行,若无,则打印空
        • (3) readlines()---读取所有行,并存入列表
        • (4) readable()---判断是否可读
      • ② w---只写模式
        • (1) 若文件存在,将会清除原文件;若文件不存在,将会新建空文件
        • (2) write()---写入内容,\n换行结束本行,可编写多行
        • (3) writelines()---以列表的形式写入,\n换行,内容只能为字符串
      • ③ a---追加(追加模式写入,不会覆盖),write()写到文件最后,无法read()读取
      • ④ r+,w+,a+ ---可读可写
      • ⑤ b二进制形式,rb二进制形式读,wb二进制形式写入,b方式不能指定编码(encoding=’utf-8’)
      • ⑥ 几种文件操作魔法的道具
        • (1) closed---判断文件是否关闭
        • (2) encoding---查看文件编码方式
        • (3) flush()---刷新
        • (4) name---文件名
        • (5) tell()---当前光标所在位置(字节位置)
        • (6) Newline---读取文件中真正的换行字符
        • (7) Truncate()---切文件(截取),不能用在w与w+当中
        • (8) seek()---控制光标移动f.seek(字节),b方式打开
    • 3. 读取日志文件最后一行数据(练习)
    • 4. 文件操作魔法的 增删改查 技能
      • 基本模板
    • 5. 程序小总结
      • (1) 函数
      • (2) tag True/False警告符,通过警告符tag来进行改变操作方向,或来结束死循环
      • (3) 文件处理
      • (4) 程序的解耦:将函数中重复部分构成一个新的函数,进而调用代替,减少代码量
  • 总结

前言

文件操作,通常用在数据保存与数据处理使用,庞大的数据可能以字符串的形式写在程序里,如果真这样想必是有啥大病。。。


文件操作

1. 文件操作基本手法读取日志文件最后一行数据

f = open('a',encoding='utf-8')  #文件打开,编码方式utf-8
data = f.read()  #读文件
print(data)
f.close()  #文件关闭

2. 文件操作魔法的几种模式

① r—只读模式

(1) read()—读取文件全部,若读完,后面再调用readline则将无法再读出

f = open('a','r',encoding='utf-8')
data = f.read()
print(data)
print(f.readline())#前面已经读完,此刻再读则无法读出,返回为空
f.close()

(2) readline()—一次使用读一行,若无,则打印空

f = open('a','r',encoding='utf-8')
n = 1
while True:m = f.readline()if m=='':breakprint('第%d句:' %n,m)n+=1
f.close()

(3) readlines()—读取所有行,并存入列表

f = open('a','r',encoding='utf-8')
print(f.readlines())  #换行符\n也会被存入列表
f.close()

(4) readable()—判断是否可读

f = open('a','r',encoding='utf-8')
print(f.readable())
f.close()

② w—只写模式

(1) 若文件存在,将会清除原文件;若文件不存在,将会新建空文件

(2) write()—写入内容,\n换行结束本行,可编写多行

f = open('b','w',encoding='utf-8')
data = 'I love you\nPython'
f.write(data)
f.close()

(3) writelines()—以列表的形式写入,\n换行,内容只能为字符串

f = open('b','w',encoding='utf-8')
data = ['I love you\n','Python']
f.writelines(data)
f.close()

③ a—追加(追加模式写入,不会覆盖),write()写到文件最后,无法read()读取

f = open('b','a',encoding='utf-8')
data = '\nI love you\nPython'
f.write(data)
f.close()

④ r+,w+,a+ —可读可写

⑤ b二进制形式,rb二进制形式读,wb二进制形式写入,b方式不能指定编码(encoding=’utf-8’)

f = open('a','rb')
data = f.read()
print(data.decode('utf-8'))
f.close()

⑥ 几种文件操作魔法的道具

(1) closed—判断文件是否关闭

f = open('a','r',encoding='utf-8')
data = f.read()
print(f.closed)
print(data)
f.close()
print(f.closed)

(2) encoding—查看文件编码方式

f = open('a','r',encoding='utf-8')
data = f.read()
print(f.encoding)
print(data)
f.close()

(3) flush()—刷新

(4) name—文件名

(5) tell()—当前光标所在位置(字节位置)

(6) Newline—读取文件中真正的换行字符

(7) Truncate()—切文件(截取),不能用在w与w+当中

f = open('a','r+',encoding='utf-8',newline='')
data = f.read()
print(f.name)
f.flush()
print(f.tell())
print(data)
print(f.truncate(6))
f.close()

(8) seek()—控制光标移动f.seek(字节),b方式打开

默认为0,文件开头
字节数:汉字3个字节,换行2个字节,字母数字空格1个字节
seek(n,1)—相对前一次光标位置,向后n个位置
seek(-n,2)—倒序,从后数第n个位置

f = open('b','rb')
data = f.read()
print(f.tell())
f.seek(6)  #字节数,汉字3个字节,换行2个字节,字母数字空格1个字节
print(f.tell())
f.seek(16,1)   #相对前一次光标位置,向后16个位置
print(f.tell())
f.seek(-6,2)   #倒序,从后数第6个位置
print(f.tell())
f.close()

3. 读取日志文件最后一行数据(练习)

f = open('b','rb')
for i in f:offs = -10  #自定义长度(只要不要太大即可,以免超过文件最大字节),倒叙while True: #根据循环来判断最后一行f.seek(offs,2)data = f.readlines()  #读取光标位置,从此往后读取,一行为列表一个元素if len(data)>1:  #通过循环使offs不断变大,从而是最后一行读取完整(或offs过大直接得出最后一行)print('文件最后一行是:%s' %(data[-1].decode('utf-8')))breakoffs *= 2

4. 文件操作魔法的 增删改查 技能

基本模板

def adder():print('增加')
def delete():print('删除')
def update():print('修改')
def look():print('查看')
if __name__ == '__main__':msg ='1:增加,2:删除,3:修改,4:查看'msg_dic={'1':adder,'2':delete,'3':update,'4':look}while True:print(msg)choice = input('请输入选项:').strip()if not choice:continueif int(choice) > 4:print('没有此功能')continuemsg_dic[choice]()

5. 程序小总结

(1) 函数

(2) tag True/False警告符,通过警告符tag来进行改变操作方向,或来结束死循环

tag = True
i = 0
while tag:if i==tag:tag = Falseprint('结束循环')else:i = Trueprint('继续循环')

(3) 文件处理

(4) 程序的解耦:将函数中重复部分构成一个新的函数,进而调用代替,减少代码量

总结

文件操作其实简简单单,无非就是存与取两种操作,至于对其数据的操作还是要运用程序魔法来进行,今天先简单说这么一点,先练一练这些基本的文件操作魔法吧!

Python Magic——文件操作相关推荐

  1. python写文件追加 按行追加_你真的会用python进行文件操作吗

    本篇文章主要比较系统的介绍了python中文件操作,以及在在使用中需要注意的问题. 什么是文件 文件是系统存储区域的一个命名位置,用来存储一些信息,便于后续访问.能够在非易失性存储器中实现持续性存储, ...

  2. Python基础-文件操作

    Python基础-文件操作 1.文件的打开和关闭 # 1.打开文件 # 默认r模式 只读 文件不存在,报错 # f = open('a.txt')# w模式 写权限 # 如果文件不存在,就会创建文件 ...

  3. python的文件操作、模块操作、os模块、time、datatime模块以及模块的制作

    Day12新手小白学python 第十二节 python的文件操作.模块操作.os模块.time.datatime模块以及模块的制作 目录 Day12新手小白学python 前言 一.文件打开关闭 二 ...

  4. 15 python的文件操作

    一.文件打开 文件(file) 通过Python程序来对计算机中的各种文件进行增删改查的操作,文件也叫I/O(Input/Output) 文件的操作步骤 打开文件 对文件进行各种操作(读.写)然后保存 ...

  5. python通过内置的什么函数打开一个文件_利用python进行文件操作

    这篇文章主要介绍了如何利用python进行文件操作,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下 什么是文件 文件是系统存储区域的一个命名位置,用来存储一些信息,便于后续访问.能够在非 ...

  6. Python之文件操作_读取_编码_os模块

    目录 前言 一.文件基本操作 1.什么是文件 2.操作文件的步骤 3.文件的路径 4.open函数操作权限总结 5.文件读取 6.with-open-as 7.文件定位读取 8.文件编码 二.OS模块 ...

  7. python对文件操作-python中文件操作的其他方法

    Python中文件操作的一般方法,包括打开,写入,关闭.本文中介绍下python中关于文件操作的其他比较常用的一些方法. 首先创建一个文件poems: p=open("poems" ...

  8. python:文件操作

    一.文件操作 1.介绍 f:变量,f_obj,file,f_handler.....文件句柄 open      window的系统功能 windows默认编码方式:gbk',linux默认编码方式是 ...

  9. Python基础--文件操作

    文件操作通常用来存储程序结果,以便下次可以直接使用,不必要重新运行一遍.文件操作最基本的三步:1.打开文件或者新建文件  2. 读或者写  3 关闭文件流保存数据. Python 访问模式如下: 打开 ...

最新文章

  1. 网站性能越来越差怎么办?
  2. 【前沿技术】被“围剿”的比特币,一个月“吃”掉4500万度电!
  3. python零基础入门教材-python如何零基础学习,如何入好门?
  4. 简书的css排版,css格式化排版
  5. 【数据挖掘】视频版权检测优胜解决方案
  6. 存储类型_malloc_typedef小结
  7. 净水器怎么放_家中安装净水器后,水却更脏了!这几个常识性问题你不得不知道...
  8. [转载] 民兵葛二蛋——第1集
  9. java务必让常量的值在运行期保持不变
  10. JDBC连接数据库(一)
  11. python基础课程6(看代码看注释)--pandas
  12. 地铁建设 (Standard IO)
  13. word图表自动编号
  14. stm32 hal 模拟i2c
  15. 老婆也是程序员,双码农家庭真的快乐吗?
  16. Leetcode每日一题2020.11.13第328题:奇偶链表
  17. 流程设计建模方法:流程的需求梳理之活动级别梳理
  18. 32位掩码转换成子网掩码
  19. Flutter仿美团应用开发笔记-首页 (1)
  20. 你在客户那到底算老几

热门文章

  1. Android Oss上传文件简单使用
  2. 产品经理基础入门课程
  3. Android App开发之位图加工Bitmap中转换位图的像素色彩、裁剪内部区域、利用矩阵变换位图的讲解及实战(附源码和演示)
  4. DoS网络攻击的类型
  5. Structured-Streaming编程练习知识点
  6. 如何连接到远程windows服务器(纯学习笔记,不作为教程)
  7. centos 4.4 智能DNS解决南北互通方案
  8. 首师大附中集训第十一天:OI炼金术
  9. Virtual Box 安装Win10保姆式教程
  10. Excel 检测离群值 Outlier,极端值判断教学