python文件读写代码实例


Posted in Python onOctober 21, 2019

实验室导师又有任务,从一个.dat文件中读取波形数据,通过一个自编码网络进行异常检测。可是对我这种小白来说真的艰难。从最基础的文件读写开始吧。

先说数据,是一个int16型的数组。说是数组,但是读取也并不简单。众所周知,数据在计算机中是用二进制的形式储存的。int16型有符号整数。16位,16bit,也就是两个字节。那么自然而然的想到,读取两个字节(bytes)的数据(也就是16bit),然后把它转化成int16的整型(即十进制整型)。数据就变得可以处理了。

先放一个不同位数的整型数据范围吧,经常会用的到。

  • Int8 //等于byte,-128 127
  • Int16 //等于short, 占2个字节. -32768 32767
  • Int32 //等于int, 占4个字节. -2147483648 2147483647
  • Int64 //等于long, 占8个字节. -9223372036854775808 9223372036854775807

这里补充一个小知识点,python3中的int类型是动态长度的,是长整型,理论支持无限大的数字。对一个int型实例运行内建的__sizeof__方法,可以查看占用的字节数。其中0占了24个字节,其他数字一般占用28个字节。

读文件:文本文件

>>> f = open('/Users/michael/test.txt', 'r')

我们知道,在python3中,字符串类型(str)包含的是Unicode characters。这种特性使得我们在python3中可以定义包含Unicode character的字符串,并甚至可以在变量标识符中使用非ASCII字符。

那么以上的代码做的是这样一件事:定义一个文件对象,文件对象标明将用读字符的手段来读取这个文件中的内容。

>>> f.read()
'Hello, world!'

上面的代码一次性读取文件的全部内容,把内容读到内存,用str对象表示。

此外还可以调用read(size),每次读取size个字节的内容。或者调用readline(),每次读取一行内容。将每一行的内容存在str里,并返回一个str的列表。

为了保证文件被关闭,可以使用with关键词:

with open('/path/to/file', 'r') as f:
  print(f.read()

读取非UTF-8编码的文本文件,需要给open()函数传入encoding参数,例如,读取GBK编码的文件:

>>> f = open('/Users/michael/gbk.txt', 'r', encoding='gbk')
>>> f.read()
'测试'

二进制文件:

如果要读取二进制文件,用rb模式打开文件即可。

>>> f = open('/Users/michael/test.jpg', 'rb')
>>> f.read()
b'\xff\xd8\xff\xe1\x00\x18Exif\x00\x00...' # 十六进制表示的字节

写文件:

写文件和读文件是一样的,调用open()函数时,传入'w'或者'wb'表示写文本文件或者写二进制文件。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现的二维码生成小软件
Jul 11 Python
Python类的多重继承问题深入分析
Nov 09 Python
Python的Django框架中URLconf相关的一些技巧整理
Jul 18 Python
Python中的模块导入和读取键盘输入的方法
Oct 16 Python
用Python将IP地址在整型和字符串之间轻松转换
Mar 22 Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
Dec 21 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
Aug 02 Python
3分钟学会一个Python小技巧
Nov 23 Python
Django Channels 实现点对点实时聊天和消息推送功能
Jul 17 Python
python groupby 函数 as_index详解
Dec 16 Python
Python3 解决读取中文文件txt编码的问题
Dec 20 Python
5个pandas调用函数的方法让数据处理更加灵活自如
Apr 24 Python
python 动态调用函数实例解析
Oct 21 #Python
python 两个数据库postgresql对比
Oct 21 #Python
python多进程(加入进程池)操作常见案例
Oct 21 #Python
Python实现字符串中某个字母的替代功能
Oct 21 #Python
基于Python实现船舶的MMSI的获取(推荐)
Oct 21 #Python
基于Python解密仿射密码
Oct 21 #Python
python多继承(钻石继承)问题和解决方法简单示例
Oct 21 #Python
You might like
php 利用socket发送HTTP请求(GET,POST)
2015/08/24 PHP
php安全配置记录和常见错误梳理(总结)
2017/03/28 PHP
一个对于Array的简单扩展
2006/10/03 Javascript
AJAX使用了UpdatePanel后无法使用alert弹出脚本
2010/04/02 Javascript
javascript面向对象之二 命名空间
2011/02/08 Javascript
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
2011/02/14 Javascript
基于jquery的动态创建表格的插件
2011/04/05 Javascript
js multiple全选与取消全选实现代码
2012/12/04 Javascript
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
简单谈谈javascript中的变量、作用域和内存问题
2015/08/30 Javascript
jQuery使用$.each遍历json数组的简单实现方法
2016/04/18 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
js添加千分位的实现代码(超简单)
2016/08/01 Javascript
常用Javascript函数与原型功能收藏(必看篇)
2016/10/09 Javascript
微信小程序 chooseImage选择图片或者拍照
2017/04/07 Javascript
在vue.js中抽出公共代码的方法示例
2017/06/08 Javascript
JS设置随机出现2个数字的实例代码
2017/07/19 Javascript
Vue添加请求拦截器及vue-resource 拦截器使用
2017/11/23 Javascript
Vue+Flask实现简单的登录验证跳转的示例代码
2018/01/13 Javascript
使用FormData实现上传多个文件
2018/12/04 Javascript
vue2.0项目集成Cesium的实现方法
2019/07/30 Javascript
VUE table表格动态添加一列数据,新增的这些数据不可以编辑(v-model绑定的数据不能实时更新)
2020/04/03 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
2020/11/26 Vue.js
[48:35]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 TNC vs Optic
2018/04/03 DOTA
python远程登录代码
2008/04/29 Python
Python基于mysql实现学生管理系统
2019/02/21 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
python实现网站微信登录的示例代码
2019/09/18 Python
pycharm 配置svn的图文教程(手把手教你)
2021/01/15 Python
数控技术应届生求职信
2013/11/13 职场文书
文化建设工作方案
2014/05/12 职场文书
婚庆答谢词
2015/01/04 职场文书
初中数学课堂教学反思
2016/02/17 职场文书
同学联谊会邀请函
2019/06/24 职场文书
VUE解决跨域问题Access to XMLHttpRequest at
2022/05/06 Vue.js
MySQL的表级锁,行级锁,排它锁和共享锁
2022/07/15 MySQL