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' 二 ...
随机推荐
- SpringBoot集成Thymeleaf模板
1.添加起步依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ...
- ssh文件 ip锁定
vi ~/.ssh/config Host web*hostname 115.29.242.1**user lian Host **hostname 192.168.1.**user dface
- spring security 学习三-rememberMe
功能:登录时的“记住我”功能 原理: rememberMeAuthenticationFilter在security过滤器链中的位置,在请求走认证流程是,当前边的filter都不通过时,会走remem ...
- 防止按钮重复点击的思路(js篇)
最直接的思路可能就是点击按钮后,按钮的事件绑定函数解绑,1s后重新绑定函数 <button id=</button> <script> btn.onclick = fun ...
- windows 之间远程大文件传输问题解决
今天我在远程登录另一台windows的时候,需要传输一个大约3GB的文件,但是每每经过了一会儿,就会提示我未知错误问题. 我在网上找了一下,本问题的解决方法如下. 1.打开远程登录的对话窗口 2.选择 ...
- uva658 dijkstra+状态压缩
题目大意: 假定有n个潜在的bug和m个补丁,每个补丁用长为n的字符串表示.首先输入bug数目以及补丁数目.然后就是对m 个补丁的描述,共有m行.每行首先是一个整数,表明打该补丁所需要的时间.然后是两 ...
- Java中几种排序算法
1.冒泡排序算法 通过多次比较(相邻两个数)和交换来实现排序 public class bubble { public static void bubbleSort(int[] a) { int te ...
- javascript onclick事件可以调用两个方法吗?
答案是:可以的,onclick事件可以调用多个方法,每个方法之间用分号(:)隔开即可. onclick后面其实是可以写任何代码的,但是一般不建议这么写!! 例:onclick="fun1() ...
- thinkphp rpc
RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC协议假定某些传输协议的存在 ...
- hdu1848 Fibonacci again and again [组合游戏]
http://acm.hdu.edu.cn/showproblem.php?pid=1848 Problem Description 任何一个大学生对菲波那契数列(Fibonacci numbers) ...