File文件读写

一、python3读文本

file=open('/Users/apple/Desktop/download.json','rt',encoding='utf8')
print(file.read())
####{
    "ecode": 2, 
    "emsg": "补丁", 
    }

二、处理二进制文件

file=open('music.wav','rb')

使用struct来解析二进制数据

struct.unpack('h',music_file[0:22])

三、设置文件的缓冲

python文件对象默认有缓冲操作,在写入时首先会加入到缓冲中,当缓冲溢出时才从缓冲溢出放入磁盘,具有4096个字节的缓冲(根据平台有关),可以设置缓冲的大小,分为
全缓冲:设置buffering为n的倍数
行缓冲:buffering为1
无缓冲:buffering为0

1.全缓冲:设置buffering为1的n倍
file=open('/Users/apple/Desktop/download.json','rt',encoding='utf8',buffering=2048)
2.行缓冲
file=open('/Users/apple/Desktop/download.json','rt',encoding='utf8',buffering=1)

四、文件映射到内存

希望可以将文件数据缓存到内存中,并且可以随意读取位置
多个进程调用同一个文件,且还能实现进程通信,需要将文件内存映射到各自的线程中
使用mmap库
mmap函数会返回一个包含所有数据的数组,这时候修改数组对应位置的二进制编码即可

import mmap
##注意第一个参数是一个文件编号,需要另外通过openNo函数获得
fileNum = file.fileno()
m=mmap.mmap(fileNum,0,access=mmap.ACCESS_WRITE)
m[0]='0x11'

五、获取文件的状态

使用os.path函数根据文件路径名获取相应

import os
import time
path='/Users/apple/Desktop/download.json'
dir=os.path.isdir(path)
size=os.path.getsize(path)
atime=os.path.getatime(path)
atime=time.localtime(atime)
print(dir,atime,size)
#False time.struct_time(tm_year=2018, tm_mon=3, tm_mday=19, tm_hour=20, tm_min=51, tm_sec=17, tm_wday=0, tm_yday=78, tm_isdst=0) 214

六、使用临时文件

采集临时数据时,可以使用临时文件进行存储,临时文件在使用后会自动删除。
使用临时文件
1.TemporaryFile 不会被系统找到 并且每次读取前 需要使用seek方法将
下表移动到指定位置
2.NameTemporaryFile 创建的临时文件可以在tmp路径下找到,TemporaryFile的delete参数可以控制文件关闭后是否删除

from tempfile import TemporaryFile,NamedTemporaryFile
f=TemporaryFile()
f.write('sss'*100)
f.seek(0)
f.read()
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,230评论 19 139
  • 一、温故而知新 1. 内存不够怎么办 内存简单分配策略的问题地址空间不隔离内存使用效率低程序运行的地址不确定 关于...
    SeanCST阅读 12,418评论 0 27
  • 问题一:如何读写文本文件? 问题内容:某文件编码格式已知(如UTF-8,GBK,BIG5),在python2.X和...
    码农小杨阅读 8,106评论 0 1
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 7,142评论 0 4
  • 整条街看起来有点破落,建筑与建筑之间稀稀拉拉的,很慵懒。都是围湖而绕,恰巧今晚凉风习习,悠扬的音乐在随风摇曳,舒服...
    Miss_廖阅读 1,256评论 0 0

友情链接更多精彩内容