博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文件处理的简单操作
阅读量:5158 次
发布时间:2019-06-13

本文共 2190 字,大约阅读时间需要 7 分钟。

文件处理的简单操作:

open()函数,掉用操作系统打开文件.

 #写入模式下,写入的元素必须是字符串

open(‘文件所在位置+文件名’,‘对文件处理的方式(r,w,a)‘ ,encoding = '编码形式(如utf-8)') ‘r’只读,'r+'读写模式

f = open('11.text','r',encoding='utf-8')     #打开文件的编码要与文件本身的编码要一致a = f.read()                                 #read()将文件中的所有内容读出print(a)b = f.readable()                                #判断文件是否可以读出来,返回bool值print(b)c = f.readline()                             #一行一行的读print(c)d = f.readlines()                             #将所有的文件内容全部读出来,每一行为一个元素放在列表中print(d)f.close()
‘w’模式,当文件名不存在时,创建文件(存在时,者覆盖原文件)
f = open('11.text','w',encoding='utf-8')f.write('jiang\njiang\njiang')        #'w'模式下也有writeline(),writeable()等使用方法,与‘r’模式相似f.close()
'a'模式,添加模式,在文件的最后添加内容
f = open('11.text','a',encoding='utf-8')f.write('jianren\n')                             #从文件中的最后处开始添加f.close()
‘r+’ 读写模式
f = open('11.text','r+',encoding='utf-8')print(f.read())f.write('jiangxiaolong\njiangxiaolong\njiangxiaolong\n')  # 在‘r+’模式下,write()是追加文件f.writelines(['jiangxiaolong\n','age\n','ttt'])    #writelines(),传入列表,‘\n’,元素换行f.close()

 

为了更加方便的进行文件操作,引入with关键字(可以省略close())

with open('11.text','r+',encoding='utf-8') as f:     #使用with更加方便,省略了close()    a = f.read()    print(a)    f.write('\nsb\n sb')
除了'r','a','w'等模式外还可以在这些模式的后面加‘b(bytes二进制)’,表示以二进制的方式读写 那么为什么要有‘b’呢,因为读写文件时,文件不是只有字符串串,还有图片,视频等
f = open('11.text','rb+')     #在二进制的模式下,不能加入encodinga = f.read()                 #以二级制的形式读出文件内容print(a)f.write('jiang\nxiao\nlong'.encode('utf-8'))            # 要在写入的内容后面使用encode()方法,f.write(bytes('jiang\nxiao\nlong',encoding='utf-8'))   #将字符串转化为二进制,也可以用bytes函数f.close()
一个小练习,给你一个文件怎么读出超大文件的最后面一行的信息 这里要介绍 光标(读取写从什么位置开始(从光标的位置向后操作)类似于鼠标在文件中的位置) seek(offset: int) offset表示向后移动的数量,int有3种类型。1(表示从0的位置开始移动),2(表示从相对位置开始移动), 3(表示从文件的最后开始移动) # f = open('11.text','r+',encoding='utf-8') # f.seek(9,0)   #这里要注意的是1中文字符代表3个字节,在Windows中换行代表2个字节,其他的都是一个 # print(f.read()) # f.close()
读取文件的最后一行f = open('11.text','rb')x = -3while True:    f.seek(x,2)    print(f.fileno())       #fileno()函数,查看当前光标所在的位置    date = f.readlines()    if len(date) > 1:        print(date[-1].decode(encoding='utf-8')) #decode()解码函数,将二级制解码        break    x = x -3f.close()

 

 

 

转载于:https://www.cnblogs.com/jiangxiaolong-1996/p/9258278.html

你可能感兴趣的文章
Django--入门篇:下载与项目生成
查看>>
Python深浅拷贝
查看>>
flask源码解析之上下文
查看>>
nyoj 素数距离
查看>>
矩阵计算模板
查看>>
WinForm 开发框架【动态读取DLL模式】
查看>>
MYSQL面试
查看>>
今日头条2018 笔试题1
查看>>
转:ASP.NET 2.0利用Httphandler实现URL重写(伪URL及伪静态)
查看>>
inner join on多列
查看>>
Android ListView CheckBox状态错乱
查看>>
RxJava 和 RxAndroid 四(RxBinding的使用)
查看>>
51Nod 1058 N的阶乘的长度
查看>>
charles之抓取浏览器https请求
查看>>
fiddler模拟弱网操作
查看>>
动态规划
查看>>
第一个 MIC shared_memory 程序
查看>>
CentOS 7 安装 GlusterFS
查看>>
Mysql内置功能《一》流程控制
查看>>
Angularjs 通过WebApi 下载excel
查看>>