返回顶部
首页 > 资讯 > 后端开发 > Python >【Python】Numpy用fromfile和tofile读写文件
  • 421
分享到

【Python】Numpy用fromfile和tofile读写文件

pythonnumpy开发语言fromfiletofile 2023-09-01 11:09:24 421人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

文章目录 tofilefromfile fromfile和tofile既可以读写二进制文件,也可以读写文本文件,是非常灵活的文件读取函数。 tofile 考虑到大家手头没有合适的文件以

文章目录

fromfiletofile既可以读写二进制文件,也可以读写文本文件,是非常灵活的文件读取函数。

tofile

考虑到大家手头没有合适的文件以供读写,所以先讲解tofile,其定义为

ndarray.tofile(fid, sep='', fORMat='%s')

其中sep表示分隔符,当sep为空('')时,将存储为二进制文件,否则存储为文本。当存储为文本时,可通过format来设置文本的存储格式。

import numpy as npx = np.random.randint(10, size=[5,10])print(x)'''[[8 5 5 4 1 5 9 0 8 8] [1 4 9 2 2 8 6 3 0 8] [0 6 7 8 9 0 6 6 2 1] [2 8 6 0 5 0 4 8 6 8] [3 0 1 3 5 9 7 1 6 5]]'''x.tofile("test.bin")

由于sep默认为'',所以test.bin是二进制文件,为了确认这一点,可以打开看一下

>>> x.tofile("test.bin")>>> with open('test.bin', 'rb') as f:...   f.read()...

返回值如下


b’\x08\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\t\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x08\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\t\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x08\x00\x00\x00\x06\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x00\x00\t\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x08\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x08\x00\x00\x00\x06\x00\x00\x00\x08\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x03\x00\x00\x00\x05\x00\x00\x00\t\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x05\x00\x00\x00’


可以看出其存储的内容以4个字节为一组,并且高位高地址,0x08 0x00 0x00 0x00正是8,0x05 0x00 0x00 0x00正是5,依次类推。

如果对sep赋了值,那么存储内容也会相应地发生变化

x.tofile('test.txt', sep='|')

这个test.txt可以直接打开,内容是

8|5|5|4|1|5|9|0|8|8|1|4|9|2|2|8|6|3|0|8|0|6|7|8|9|0|6|6|2|1|2|8|6|0|5|0|4|8|6|8|3|0|1|3|5|9|7|1|6|5

format可以指明输出文档的数字格式,例如

x.tofile('test.txt', sep=',', format="%f")

所得到的test.txt中,数字就会有小数点。

fromfile

fromfile相当于是tofile的对偶函数,其定义为

fromfile(file, dtype=float, count=-1, sep='', offset=0, *, like=None)

其中file, sep自不必说,dtype表示读取之后赋予的数据类型,count表示读取的项目offset表示偏移量;like为一个数组,这个数组决定读取数据之后输出数组的形状。

如果不声明dtype,则会默认为是float类型,从而导致灾难性后果

>>> y = np.fromfile('test.bin')>>> yarray([1.06099790e-313, 8.48798317e-314, 1.06099790e-313, 4.44659081e-323,       1.69759663e-313, 8.48798316e-314, 4.24399159e-314, 1.69759663e-313,       6.36598738e-314, 1.69759663e-313, 1.27319747e-313, 1.69759663e-313,       4.44659081e-323, 1.27319747e-313, 2.12199579e-314, 1.69759663e-313,       2.96439388e-323, 2.47032823e-323, 1.69759663e-313, 1.69759663e-313,       1.48219694e-323, 6.36598737e-314, 1.90979621e-313, 2.12199579e-314,       1.06099790e-313])

由于此前用tofile保存的是整型,所以读取的时候也得是整型

>>> y = np.fromfile('test.bin', dtype=int)>>> print(y)[8 5 5 4 1 5 9 0 8 8 1 4 9 2 2 8 6 3 0 8 0 6 7 8 9 0 6 6 2 1 2 8 6 0 5 0 4 8 6 8 3 0 1 3 5 9 7 1 6 5]

这回味儿就对了。

而且二进制和文本一定要注意区分,即sep不能弄错,否则也会无法读取到想要的数据

>>> y = np.fromfile('test.bin', dtype=int, sep=',')<stdin>:1: DeprecationWarning: string or file could not be read to its end due to unmatched data; this will raise a ValueError in the future.>>> yarray([], dtype=int32)>>> y = np.fromfile('test.txt', sep=',')>>> yarray([8., 5., 5., 4., 1., 5., 9., 0., 8., 8., 1., 4., 9., 2., 2., 8., 6.,       3., 0., 8., 0., 6., 7., 8., 9., 0., 6., 6., 2., 1., 2., 8., 6., 0.,       5., 0., 4., 8., 6., 8., 3., 0., 1., 3., 5., 9., 7., 1., 6., 5.])

来源地址:https://blog.csdn.net/m0_37816922/article/details/128694566

--结束END--

本文标题: 【Python】Numpy用fromfile和tofile读写文件

本文链接: https://lsjlt.com/news/388225.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 【Python】Numpy用fromfile和tofile读写文件
    文章目录 tofilefromfile fromfile和tofile既可以读写二进制文件,也可以读写文本文件,是非常灵活的文件读取函数。 tofile 考虑到大家手头没有合适的文件以...
    99+
    2023-09-01
    python numpy 开发语言 fromfile tofile
  • python使用NumPy文件的读写操作
    一、使用NumPy读写文本文件 在数据分析中,经常需要从文件中读取数据或将数据写入文件,常用的存储文件的格式有文本文件、CSV格式文件、二进制格式文件和多维数据文件等。 1.将1维或...
    99+
    2024-04-02
  • 如何在 Python 中使用 NumPy 库读取和写入文件?
    NumPy 是一个常用的 Python 库,用于科学计算和数据分析。在数据处理中,我们经常需要从文件中读取数据或将处理结果写入文件。NumPy 提供了读写文件的功能,能够帮助我们快速、高效地进行数据处理。 本文将介绍如何在 Python ...
    99+
    2023-11-04
    文件 关键字 numy
  • Python读取和写入文件
    #Read and Write from Files##coding=utf-8import codecsf = open("AccountList.txt","w")L = u"张三\n李四\n王五\n赵六"f.write(L)f.clo...
    99+
    2023-01-31
    文件 Python
  • python-yml文件读写与xml文件读写
    目录一、python-yml文件读写更新yml的数值二、python-xml文件读写寻找 XML 节点修改 XML 数据建立 XML 结构XPath 搜索XML 排版一、python...
    99+
    2024-04-02
  • Python文件读写
    python文件读写 读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写...
    99+
    2023-01-31
    文件 Python
  • python读写文件
    python 文件操作 本文系海特网编程技术斑竹Cute所发表,版权归海特网与Cute所有,转载请保留完整信息 #打开文件和进行写操作 f=open('test.txt','w') f.write('hello')&...
    99+
    2023-01-31
    文件 python
  • python用pandas读写和追加csv文件
    目录csv文件一、创建csv文件二、读写csv文件1.基础python2.pandas三、追加csv文件1.基础python2.pandas总结csv文件 CSV文件是最常用的一个文...
    99+
    2024-04-02
  • 科学计算库Numpy——文件读写
    读文件 要读取的文件 有分隔符的文件 备注:delimiter分隔符。 有多余行的文件 备注:skiprows去掉几行。 指定列 备注:usecols指定使用哪几列。 写文件 保存后的文件...
    99+
    2023-01-31
    文件 科学 Numpy
  • 如何在Python中使用Numpy进行文件读写操作?
    当我们在使用Python进行科学计算时,Numpy是一个非常重要的工具。它提供了大量的数学函数和数组操作方法,可以让我们更高效地进行数据分析和处理。在本文中,我们将介绍如何使用Numpy进行文件读写操作,并提供一些示例代码。 文件读写操作...
    99+
    2023-06-01
    numpy django 文件
  • 使用Python读写csv文件
    简介:CSV (Comma Separated Values) 格式是电子表格和数据库中最常见的输入、输出文件格式。又称逗号分隔值(Comma-Separated Values,CS...
    99+
    2024-04-02
  • python中numpy数组的csv文件写入与读取
    目录0.摘要1.文件写入与读取2.函数详解-savetxt3.函数详解-loadtxt0.摘要 本文主要介绍numpy库中,csv文件中数据的写入和读取方式。 1.文件写入与读取 写...
    99+
    2023-03-09
    numpy csv写入与读取 numpy csv写入 numpy csv读取
  • Python数据读写之Python读写CSV文件
    目录1. 读取CSV文件 csv.reader()2. 写入CSV文件1. 读取CSV文件 csv.reader() 该方法的作用相当于就是通过 ',' 分割csv格...
    99+
    2024-04-02
  • Python读写yaml文件
    目录1.关于yaml2.yaml数据结构3.yaml文件格式1.关于yaml yaml基本语法规则: 大小写敏感使用缩进表示层级关系缩进时不允许使用Tab键,只允许使用空格。缩进的空...
    99+
    2024-04-02
  • python之读写文件
    在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件...
    99+
    2023-01-30
    文件 python
  • python读写excel文件
    项目中需要生成excel表格,在网上查了一些资料后,整理记录下。 1. 读excel表格 1 ''' 2 读取XLS,XLSX文件 3 ''' 4 def readExcelFile(filename): 5 # 打开...
    99+
    2023-01-30
    文件 python excel
  • Python读写properties文件
    最近用python写个工具,涉及到properties文件的读写操作。发现Python并没有提供操作properties文件的库,只有一个 ConfigParser 类来支持 .ini 文件的读写,这显然不是我想要的,于是一番折腾...
    99+
    2023-01-31
    文件 Python properties
  • Python 7.1 文件读写
    文件读写文件读写是我们最常见的IO操作。Python内置了文件读写的函数,用法和C是兼容的。读写文件前,我们必须先了解下,在磁盘上读写文件的功能是由操作系统实现的,现代操作系统不允许普通程序操作磁盘,所以,读写文件就是请求操作系统打开一个文...
    99+
    2023-01-31
    文件 Python
  • Python读写CSV文件
    csv模块方法csv.readerimport csv    with open('temp.csv','rb') as f:         reader = csv.reader(f)         for row in reader...
    99+
    2023-01-31
    文件 Python CSV
  • Python 3.5 读写文件
    在Python中读写文件不需要像Java或.Net一样要另外导入io"包",可直接使用open方法open() 返回一个文件对象,并且通常使用两个参数:open(filename, mode)>>>f = open('yo...
    99+
    2023-01-31
    文件 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作