python学习9—文件基本操作与高级操作

1. 文件基本操作

  • 打开文件,获得文件句柄:f = open('filename',encoding='utf-8'),open会查询操作系统的编码方式,并按照该编码方式读取文件,若文件使用utf-8编码,则打开需指定编码
  • 通过句柄对文件操作:data = f.read()
  • 关闭文件:f.close()

2. 文件操作模式

  • r,只读模式,不可写,f = open('filename','r',encoding='utf-8')

    • f.readable()判断文件是否可读
    • f.readline()读取文件中的一行,随着光标移动,依次读取各行
f = read('xxx')
f.read() f.readline()  #此处读取时,光标已经到文件最后,则此处读取的值为空
    • f.readlines()读取所有行,并把每一行保存为一个字符串,所有行保存为列表
    • open()包含参数newline,f=open('1.txt','r',newline=''),python会自动将不同平台的换行符号均转换为\n,在windows平台上,换行符为\r\n
  • w,只写模式,不可读,f = open('filename','w',encoding='utf-8'),写入文件的内容必须是字符串
    • 如果文件存在,则清空文件再进行后续操作
    • 如果文件不存在,则会新建一个文件
    • f.write('contents\n'),一行一行的将内容写入文件,从当前光标所在位置写入
    • f.writelines(list),将内容写到一个列表里,在将列表里的各个元素分行写入文件中
    • f.writeable(),判断文件是否可写
  • x,只写模式,若文件不存在则创建该文件,若文件存在则报错
  • a,追加模式,f = open('filename','a',encoding='utf-8')
    • a模式本身就是写模式,只不过是采用追加的方式去写文件
  • r+,读写模式,f = open('filename','r+',encoding='utf-8')
  • w+,x+,a+,写读模式
  • rb,wb,xb,ab,以字节的方式读写,不能指定编码
fr = open('TextFile1.txt','rb')
print(fr.read().decode('gbk')) f = open('test22.py','wb') f.write(bytes('asdfghjkl\n', encoding = 'utf8'))
f.write('中文'.encode('utf8'))

注:从二进制转换为字符串显示为decode(),从字符串变为二进制存储为encode()

自动关闭文件的方式:

with open('file','w') as f:
f.write('asdf') with open('file1','w') as f1, open('file2','w') as f2
f1.write('asdf')
f2.write('ghjkl')

3. 文件操作方法

  1. f.closed,判断文件是否关闭
  2. f.encoding,显示文件打开的编码方式
  3. f.flush(),将内存中文本刷新到文件中,更新文件内容
  4. f.name,文件名
  5. f.tell(),显示当前光标所在位置,按照字节计数
  6. f.seek(0),将光标移动到0位置,按照字节计数
  7. f.read(4),按照字符计数,读取4个字符
  8. f.truncate(10),截取前10个字节,写入原本的文件,覆盖源文件

4. 文件高级操作

  1. f.seek(,0),0表示光标位置采用绝对位置
  2. f.seek(,1),要求文件以b模式打开,采用相对位置,累加
  3. f.seek(,2),采用倒序,以b模式打开,从文件末尾开始移动光标
  4. 循环文件的推荐方式:下面第一种方式读取所有文件内容,然后一行一行的循环;而第二种方式只是一行一行读取文件的内容
for i in f.readlines():
print(i) #推荐
for i in f:
print(i)

5. 读取大文件最后一行

  关键思想:每次增加从文件末尾读取字符串的个数,直到完全读取了最后一行,并用索引[-1]取出读取数据的最后一行。

for i in f:
offs=-10
while True:
f.seek(offs, 2)
data=f.readlines()
if len(data)>1:
print('文件的最后一行是%s' %(data[-1]. decode('utf-8')))
break
offs*=2

python学习9—文件基本操作与高级操作的更多相关文章

  1. Go语言学习教程:xorm表基本操作及高级操作

    在上节内容中,我们介绍了xorm框架表结构的映射规则和表结构的操作.本节课,继续来深入学习表结构基本操作和高级查询的相关功能. 表结构基本操作 对表结构的操作最常见的操作是查询和统计相关的方法,我们首 ...

  2. Python对文件和文件夹的高级操作模块shutil

    shutil模块提供了许多关于文件和文件夹的高级操作. 特别提供了支持文件复制和删除的功能. # 将文件对象fsrc的内容复制到文件类对象fdst.length(可选参数)是缓冲区大小 shutil. ...

  3. Python中对 文件 的各种骚操作

    Python中对 文件 的各种骚操作 python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getc ...

  4. python学习笔记:文件操作和集合(转)

    转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...

  5. python学习总结---文件操作

    # 文件操作 ### 目录管理(os) - 示例 ```python # 执行系统命令 # 清屏 # os.system('cls') # 调出计算器 # os.system('calc') # 查看 ...

  6. Python学习之==>文件操作

    1.打开文件的模式 r,只读模式(默认)[不可写:文件不存在,会报错] w,只写模式[不可读:不存在则创建:存在则删除内容] a,追加模式[不可读:不存在则创建:存在则追加内容] r+,读写模式[可读 ...

  7. python学习8 文件的操作

    本文拷贝了on testing 的<python之文件操作:文件的读写>,只做学习之用 python的文件读写通过 一.用open函数 二.对文件读写操作 三.读取文件位置定位 1. op ...

  8. python学习day8 文件操作(深度学习)

    文件操作 (day7内容扩展) 1 文件基本操作 obj = open('路径',mode='模式',encoding='编码')obj.write()obj.read()obj.close() 2 ...

  9. python学习(11)文件的读写操作

    1.读文件的7种操作模式 操作模式 具体含义 'r' 读取 (默认) 'w' 写入(会先截断之前的内容) 'x' 写入,如果文件已经存在会产生异常 'a' 追加,将内容写入到已有文件的末尾 'b' 二 ...

随机推荐

  1. 数据库(一)—— MySQL介绍

    目录 MySQL介绍 一.MySQL版本 1.mysql主流版本 2.版本选择 二.MySQL连接与实例 1.MySQL的C/S结构 2.MySQL实例 三.mysql三层结构 1.连接层(连接上数据 ...

  2. Java内部类成员

    内部类可以访问其所有实例成员,实例字段和其封闭类的实例方法.参考如下实例 - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2 ...

  3. 使用pip 时报错 Fatal error in launcher: Unable to create process using '"D:\pytghon2.7\python.exe" "D:\python2.7\S

    无法创建使用pip.exe创建进程,说白了就是无法启动pip安装插件. 解决方法升级pip: python -m pip install -U pip  

  4. 出现异常: 非介入式客户端验证规则中的验证类型名称必须唯一。下列验证类型出现重复: required

    在将web.config文件中的<add key="ClientValidationEnabled" value="false" /> 设为fals ...

  5. Activiti获取当前活动(任务)的出口(动态生成提交按钮)

    1.设置出口变量 当一个任务有一个或多个出口时,可以在出口连线出设置判断条件如图: 2.根据任务Id获取出口集合 public List<String> getOutGoingTransN ...

  6. 2018-8-10-wpf-单例

    title author date CreateTime categories wpf 单例 lindexi 2018-08-10 19:16:53 +0800 2018-2-13 17:23:3 + ...

  7. C#多线程的应用

    1.进程 就像我们任务管理器里面运行的进程 进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源.一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括 ...

  8. AtCoder Beginner Contest 127 D,E,F

    D Integer Cards 题意:先给出n个数字,然后可以有m次操作,每次操作以数字对(x,y)表示最多能选x个数字把它变成y,问经历m次操作后n个数字和最大为多少? 解法:一个明显正确的做法是: ...

  9. POJ-1155 TELE 树形背包dp

    dp[u][i]代表以u为根的子树选i个叶子的最大收益 那么dp[u][i]=max(dp[u][i],dp[v][k]+dp[u][i-k]-len) (1=<k<=i) 细节看代码: ...

  10. iftop简单使用

    在linux下想查看当前与主机通信的IP有哪些?流量多少?怎么办?使用iftop吧,小巧实用的小工具.在排查问题的时候能起到大作用. centos安装 yum install iftop 界面如下: ...