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' 二 ...
随机推荐
- 数据库(一)—— MySQL介绍
目录 MySQL介绍 一.MySQL版本 1.mysql主流版本 2.版本选择 二.MySQL连接与实例 1.MySQL的C/S结构 2.MySQL实例 三.mysql三层结构 1.连接层(连接上数据 ...
- 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 ...
- 使用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
- 出现异常: 非介入式客户端验证规则中的验证类型名称必须唯一。下列验证类型出现重复: required
在将web.config文件中的<add key="ClientValidationEnabled" value="false" /> 设为fals ...
- Activiti获取当前活动(任务)的出口(动态生成提交按钮)
1.设置出口变量 当一个任务有一个或多个出口时,可以在出口连线出设置判断条件如图: 2.根据任务Id获取出口集合 public List<String> getOutGoingTransN ...
- 2018-8-10-wpf-单例
title author date CreateTime categories wpf 单例 lindexi 2018-08-10 19:16:53 +0800 2018-2-13 17:23:3 + ...
- C#多线程的应用
1.进程 就像我们任务管理器里面运行的进程 进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源.一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括 ...
- AtCoder Beginner Contest 127 D,E,F
D Integer Cards 题意:先给出n个数字,然后可以有m次操作,每次操作以数字对(x,y)表示最多能选x个数字把它变成y,问经历m次操作后n个数字和最大为多少? 解法:一个明显正确的做法是: ...
- 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) 细节看代码: ...
- iftop简单使用
在linux下想查看当前与主机通信的IP有哪些?流量多少?怎么办?使用iftop吧,小巧实用的小工具.在排查问题的时候能起到大作用. centos安装 yum install iftop 界面如下: ...