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

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

一:python文件处理的基本流程

1.首先打开文件,得到一个文件句柄并将其赋给一个变量

2.通过句柄对文件进行操作

3.关闭文件

f=open('文件名/或绝对路径加文件名',encoding='utf-8')#获得句柄并赋值给一个变量,且编码方式会自动使用当前系统的编码方式,因此需要指定所需的编码方式data=f.read()#通过句柄进行操作print(data)f.close()#回收句柄

二:python文件读写的模式

 

f=open('文件名/或绝对路径加文件名','r')#指定文件以只读模式操作(默认模式)print(f.readable())#打印是否可读print(f.readline())#一次读一行,且有回车空行,加end=''参数即可取消回车空行print(f.readlines())#把所有行内容读取并放在一个列表里,例如['a\n','b\n']#如果先read,则readline无法再读出任何内容,因为read()后光标停在了最后一行后面f=open('文件名/或绝对路径加文件名','w')#指定文件以只写模式操作,如果文件存在,会把文件内容直接清空,如果不存在,会先新建一个文件#写入的内容必须全是字符串f.write('dsaddsa\n')#写入一行f.write('fasfa\n')f.writelines(['1234\n','rewr\n'])#写一个列表行f=open('文件名/或绝对路径加文件名','a')#以追加模式打开f.write()#写到文件的最后f=open('文件名/或绝对路径加文件名','x')#只写模式,但若文件存在则报错#用with关键字可不用close()with open("a","r") as f,\        open("dsa",'w') as f1:    f.read()
# r+,w+,a+,x+可读可写
 

 三:python文件处理b模式

用二进制的方式处理文件的好处:文件类型不同,用b模式都可以操作

 

f=open('文件名','rb')#以二进制方式处理文件不可以再指定编码方式data=f.read()#字符串---encode--》bytes#bytes---decode--'字符串'print(data.decode('utf-8'))#指定解码方式f.close()f=open('文件名','wb')f.write(bytes('dsf\n',encoding='utf-8'))f.write('fsd'.encode('utf-8'))#同上

 

:python文件其他操作方法

 

f=open('文件名','r')#如果不知道源文件的编码方式,可以尝试使用latin-1编码print(f.closed)#判断文件是否关闭print(f.encoding)#读取文件时指定的编码f.flush()#把内容刷新到文件中f.seek(10)#指定光标开始的字节位置,默认从文件开头开始算,read方法是按照字符读取,seek等方法是按字节移动f.seek(10,1)#第二个参数为1时,指的是以相对位置移动,以光标所在当前位置为主,此时要求文件要以b模式读取f.seek(-10,2)#第二个参数为1时,以倒序的方式,以相对位置移动,此时要求文件要以b模式读取f.tell()#返回光标当前位置f.truncate(10)#从开始位置截取10个字节的内容保留,其余删除#案例:读取日志的最后一行#方式1:f.open('文件名','rb')data=f.readlines()print(data[-1].decode('utf-8'))#方式2:f.open('文件名','rb')for i in f:    abc=-10    while True:        f.seek(abc,2)        data=f.readlines()        if len(data)>1:            print(data[-1].decode('utf-8'))            break        else:            abc*=2

 

转载于:https://www.cnblogs.com/wangdamao/p/10444700.html

你可能感兴趣的文章
Traefik 入手及简单配置
查看>>
激光SLAM导航技术日益成熟 推动机器人进入发展新时代
查看>>
Conflux吐槽君:IOTA物联网电磁炉-让PoW的耗电没有遗憾
查看>>
265. To B 端 Web 页面上线前 checklist
查看>>
你可能不清楚的 Vue Router 深度用法(一)
查看>>
关于大数问题的个人理解
查看>>
Quiz - 回顾
查看>>
10分钟了解Pandas基础知识
查看>>
如何合理的规划jvm性能调优
查看>>
Java程序员幽默爆笑锦集
查看>>
从地址字符串获取省市区信息
查看>>
莫比乌斯反演初步与实际应用
查看>>
javascript-高级用法
查看>>
409. Longest Palindrome
查看>>
大话javascript 1期:作用域和作用域链
查看>>
软件开发学习的5大技巧,你知道吗?
查看>>
eosjs 文档(JSON-RPC)
查看>>
前嗅ForeSpider教程:通过链接列表采集正文数据(翻页)
查看>>
Python 基础起步 (四) 变量是什么东西 ?
查看>>
响应式的优点和缺点??
查看>>