python文件读写代码实例

作者:思念殇千寻 时间:2023-08-09 19:29:52 

实验室导师又有任务,从一个.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'表示写文本文件或者写二进制文件。

来源:https://www.cnblogs.com/chester-cs/p/11623805.html

标签:python,文件,读,写
0
投稿

猜你喜欢

  • mysql 5.7.21 安装配置方法图文教程(window)

    2024-01-28 05:04:12
  • Mysql保持现有内容在后面增加内容的sql语句

    2024-01-21 07:11:01
  • python async with和async for的使用

    2021-10-16 16:31:02
  • 在Python的setuptools框架下生成egg的教程

    2021-12-06 13:46:33
  • Oracle以逗号分隔的字符串拆分为多行数据实例详解

    2024-01-13 16:32:46
  • golang语言http协议get拼接参数操作

    2024-05-08 10:45:10
  • sql 多条件组合查询,并根据指定类别找出所有最小子类别的SQL语句备忘

    2024-01-20 09:01:50
  • 浅谈python中的面向对象和类的基本语法

    2023-06-27 11:36:45
  • Golang中的time.Duration类型用法说明

    2024-05-02 16:24:12
  • 深入Oracle字符集的查看与修改详解

    2023-06-25 22:13:15
  • asp 延时 页面延迟的三种方法

    2011-03-31 11:04:00
  • Oracle 跨库 查询 复制表数据 分布式查询介绍

    2024-01-24 23:56:08
  • 详解Python的collections模块中的deque双端队列结构

    2021-08-15 19:35:57
  • 举例区分Python中的浅复制与深复制

    2022-08-20 02:34:57
  • vue项目中常用解决跨域的方法总结(CORS和Proxy)

    2024-04-28 09:33:05
  • Python pickle模块实现对象序列化

    2022-03-04 03:51:22
  • Vue页面手动刷新,实现导航栏激活项还原到初始状态

    2024-05-03 15:11:44
  • Oracle导出excel数据

    2023-07-18 17:44:14
  • Python按天实现生成时间范围序列的方法详解

    2022-12-31 13:48:45
  • Python中的heapq模块源码详析

    2023-09-23 12:07:23
  • asp之家 网络编程 m.aspxhome.com