python学习9—文件基本操作与高级操作
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. 文件操作方法
- f.closed,判断文件是否关闭
- f.encoding,显示文件打开的编码方式
- f.flush(),将内存中文本刷新到文件中,更新文件内容
- f.name,文件名
- f.tell(),显示当前光标所在位置,按照字节计数
- f.seek(0),将光标移动到0位置,按照字节计数
- f.read(4),按照字符计数,读取4个字符
- f.truncate(10),截取前10个字节,写入原本的文件,覆盖源文件
4. 文件高级操作
- f.seek(,0),0表示光标位置采用绝对位置
- f.seek(,1),要求文件以b模式打开,采用相对位置,累加
- f.seek(,2),采用倒序,以b模式打开,从文件末尾开始移动光标
- 循环文件的推荐方式:下面第一种方式读取所有文件内容,然后一行一行的循环;而第二种方式只是一行一行读取文件的内容
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—文件基本操作与高级操作的更多相关文章
- Go语言学习教程:xorm表基本操作及高级操作
在上节内容中,我们介绍了xorm框架表结构的映射规则和表结构的操作.本节课,继续来深入学习表结构基本操作和高级查询的相关功能. 表结构基本操作 对表结构的操作最常见的操作是查询和统计相关的方法,我们首 ...
- Python对文件和文件夹的高级操作模块shutil
shutil模块提供了许多关于文件和文件夹的高级操作. 特别提供了支持文件复制和删除的功能. # 将文件对象fsrc的内容复制到文件类对象fdst.length(可选参数)是缓冲区大小 shutil. ...
- Python中对 文件 的各种骚操作
Python中对 文件 的各种骚操作 python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getc ...
- python学习笔记:文件操作和集合(转)
转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...
- python学习总结---文件操作
# 文件操作 ### 目录管理(os) - 示例 ```python # 执行系统命令 # 清屏 # os.system('cls') # 调出计算器 # os.system('calc') # 查看 ...
- Python学习之==>文件操作
1.打开文件的模式 r,只读模式(默认)[不可写:文件不存在,会报错] w,只写模式[不可读:不存在则创建:存在则删除内容] a,追加模式[不可读:不存在则创建:存在则追加内容] r+,读写模式[可读 ...
- python学习8 文件的操作
本文拷贝了on testing 的<python之文件操作:文件的读写>,只做学习之用 python的文件读写通过 一.用open函数 二.对文件读写操作 三.读取文件位置定位 1. op ...
- python学习day8 文件操作(深度学习)
文件操作 (day7内容扩展) 1 文件基本操作 obj = open('路径',mode='模式',encoding='编码')obj.write()obj.read()obj.close() 2 ...
- python学习(11)文件的读写操作
1.读文件的7种操作模式 操作模式 具体含义 'r' 读取 (默认) 'w' 写入(会先截断之前的内容) 'x' 写入,如果文件已经存在会产生异常 'a' 追加,将内容写入到已有文件的末尾 'b' 二 ...
随机推荐
- activiti7组任务测试
package com.zcc.activiti05; import org.activiti.engine.*;import org.activiti.engine.repository.Deplo ...
- EF复合主键
[Key,Column(Order = )] [Key,Column(Order = )]
- 对 HTTP HTTPS的认识
1.HTTP:超文本传输协议 -以明文的形式传输 -效率更高,但是不安全 2.HTTPS:HTTP+SSL -传输之前数据先加密,之后在揭秘 -效率低,但是安全 3.get请求和post请求的区别 - ...
- 八、结构模式之组合(Composite)模式
组合模式属于对象的结构模式,有时又叫做部分-整体模式,组合模式将对象组织到树结构中,可以用来描述整体与部分的联系.其可以使客户端将单纯元素和组合元素同等对待. 当需求中是体现部分与整体层次的结构时,以 ...
- 笔记61 Spring Boot快速入门(一)
IDEA+Spring Boot快速搭建 一.IDEA创建项目 略 项目创建成功后在resources包下,属性文件application.properties中,把数据库连接属性加上,同时可以设置服 ...
- isPrototypeOf,hasOwnProperty
在看jquery源码的过程中,了解到isPrototypeOf属性.此属性只是Object.prototype的自有属性,即: Object.prototype.hasOwnProperty('isP ...
- codeforces 1B 模拟
题目大意: 给出两种行列位置的表示方法,一个是Excel表示法,一个是(R,C)坐标表示.给出一种表示,输出另外一种表示. 基本思路: 模拟,首先判断是哪一种表示法,然后转换成另外一种表示方法: 我做 ...
- 从文本文件hello.txt到可执行文件hello
第一阶段 使用编辑器编写的源代码 (.txt) 文件 hello.c.经过 Pre-processor 进行前处理.在前处理阶段,当 pre-processor 读到代码中的#include<s ...
- leetcode-按奇偶排序数组II
Python解决方法: class Solution(object): def sortArrayByParityII(self, A): j = 1 for i in xrange(0, len(A ...
- 初试avalon
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...