Ⅰ 如何用python生成和读取二进制文件
可以使用numpy.fromfile(),也可以使用open(filename,
'rb'),其中的'b'就是二进制的意思,然后使用文件类型的read方法,读取一些字zd节,再用struct.unpack()方法来解析二进制。
第一种方法是一次性读入文件(或文件的内前多少个连续字节)到一个数组中,因此,灵活性差。
第二容种方法灵活性很高,可以读取任意位置(使用文件的seek()方法跳跃位置)的二进制数据,再使用struct.unpack()方法来进行各种二进制解析。
提示:二进制文件是不保留存储方式的数据格式,因此,读二进制文件时应该知道二进制文件的存储格式。
Ⅱ Python有什么模块可以将文本文件转化成二进制文件
英文就是ascii编码嘛!
ord(num)显示字符的编码。
然后转化编码为二进制数不就可以了。
为了美化,可以每个数值添加几个零成为8位二进制数,作为一个byte,空格隔开。
python自建有bin()函数,可是返回的字符是以'0b'开头 # '0b000110'
可以使用下面的函数转换
bin = lambda n : (n > 0) and (bin(n/2) + str(n%2)) or ''
bin(2) # 10
Ⅲ 如何用python生成和读取二进制文件
withopen('a.jpg','rb')asf:
s=f.read()
withopen('b.exe','wb')asf:
f.write(s)
Ⅳ Python文件操作,看这篇就足够!
文件的存储方式
在计算机中,文件是以二进制的方式保存在磁盘上的文本文件和二进制文件
文本文件可以使用文本编辑软件查看本质上还是二进制文件
二进制文件保存的内容不是给人直接阅读的,而是提供给其她软件使用的二进制文件不能使用文件编辑软件查看
文件基本操作
在计算机中要操作文件一共包含三个步骤:1.打开文件2.读、写文件
读 将文件内容读入内容写 将内存内容写入文件
模式描述
t文本模式 (默认)。
x写模式,新建一个文件,如果该文件已存在则会报错。
b二进制模式。
+打开一个文件进行更新(可读可写)。
U通用换行模式(不推荐)。
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+打开一个文件用于读写。文件指针将会放在文件的开头。
rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
文件打开模式有很多,但是我们实际用到的就只有六种。
我们总结一下主要用到的是下面六种
模式可做操作若文件不存在是否覆盖文件原来内容
r只读报错——
r+可读、可写报错是
w只写创建是
w+可读、可写创建是
a只写创建否,追加写
a+可读、可写创建否,追加写
只读模式打开文件——只读(r)
文件若不存在报错:
读写模式打开文件——读写模式(r+)
数据写入之前:
数据写入之后:
会替换掉相同长度的内容
文件若不存在报错:
写模式打开文件——写模式(w)
数据写入之前:
数据写入之后:
这种操作会删除原来的文件内容,重新写入Python,
并且把光标放在文件最开始。
若文件不存在,系统会创建该文件夹并重新写入内容
读写模式打开文件——读写模式(w+)
数据写入之前:
数据写入之后:
这种操作会删除原来的文件内容,重新写入Python,
并且把光标放在文件最开始。
若文件不存在,系统会创建该文件夹并重新写入内容
利用这个原理所以文件写模式(w)、读写模式(w+)还可以用作删除文件内容。
因为他们整个工作原理就是把文件原来的内容删除,然后写入新的内容。
如果我们写入的内容为空,那么不就是删除文件内容。
数据写入之前:
数据写入之后:
写模式打开文件(追加内容)——写模式(a)
数据写入之前:
数据写入之后:
可以看到是在原先内容的基础上在文末追加新的内容!
若文件不存在,系统会创建新的文件夹并写入内容
读写模式打开文件(追加内容)——读写模式(a)
数据写入之前:
数据写入之后:
可以看到是在原先内容的基础上在文末追加新的内容!
若文件不存在,系统会创建新的文件夹并写入内容
二进制模式打开文件
我们看到了在文件打开模式中有以下模式:rb、wb……有这种带 b 的。
什么意思呢?
就是用二进制的方式打开文件。
很明显,我们出现了以下错误:
主要原因是因为编码的问题,可能是因为0x82这个字节在gbk编码中没有这个字符,
可能原字符是两个字节,在gbk里被解析成了一个字节,导致字符不存在。
这就是我们文件打开方式需要使用二进制读取的原因。
文件操作
open 函数负责打开文件,并且返回文件对象
read /write / close 三个方法都需要通过文件对象 来调用
文件和文件夹的操作
在Python中⽂件和⽂件夹的操作要借助os模块⾥⾯的相关功能,
具体步骤如下:
导⼊os模块
使⽤ os 模块相关功能
1、文件重命名
2、删除文件
3、创建文件夹
4、删除文件夹
5、获取当前目录
6、改变默认目录
7、获取目录列表
Ⅳ Python中的文件读写-理论知识
Python处理两种不同类型的文件:二进制文件和文本文件。了解两者之间的差异很重要,因为它们的处理方式不同。
二进制文件
在正常计算机使用期间使用的大多数文件实际上是二进制文件,而不是文本。比如:Microsoft Word .doc文件实际上是一个二进制文件,即使它只有文本。
二进制文件的其他示例包括:
图像文件,包括.jpg,.png,.bmp,.gif,等。
数据库文件包括.mdb,.frm和.sqlite
文件,包括.doc,.xls,.pdf或者其他文件。
那是因为这些文件都有特殊处理的要求,需要特定类型的软件来打开它。例如,您需要Excel来打开.xls文件,并使用数据库程序来打开.sqlite文件。
文本文件
一方面,没有特定的编码,可以通过没有任何特殊处理的标准文本编辑器打开。但是,每个文本文件都必须遵守一组规则:
文本文件必须是可读的。他们可以(并且经常会)包含许多特殊编码,尤其是在HTML或其他标记语言中,但您仍然可以说出它的含义
文本文件中的数据按行组织。在大多数情况下,每一行都是一个独特的元素,无论是指令行还是命令。
此外,文本文件在每行的末尾都有一个看不见的字符,这使文本编辑器知道应该有一个新行。通过编程与这些文件交互时,您可以利用该字符。在Python中,它用“ n” 表示。
在哪里可以找到Python的文件I / O工具
在Python中工作时,您不必担心导入任何特定的外部库来处理文件。Python附带有“文件库”,文件I / O工具和实用程序是核心语言的内置部分。
但是在其他语言(如C ++)中,要处理文件,您必须通过包含正确的头文件来启用文件I / O工具#include <fstream>。如果您使用java编写代码,则需要使用该import java.io.*语句。
使用Python,就没有必要这样做,这是因为Python有一组内置函数,可以处理读取和写入文件所需的所有内容。
Ⅵ python 文件的打开与读写
/python通过解释器内置的open()函数打开一个文件,并实现该文件与一个程序变量的关联,open()函数格式如下:
/open()函数包含有两个参数:文件名和打开模式.当文件与执行文件在同一文件夹中,直接输入文件名,亦可输入文件的完整路径.打开模式是指以何种方式打开文件,python提供了7种打开模式.
/r/w/x/a模式与b/t/+模式可以组合使用,比如'rt'为文本只读.'rb'为二级制只读.
/文件使用结束后,需要使用close()关闭文件使用权限,释放内存.
/当文件使用文本格式打开时,读写按照字符串方式,采用计算机当前编码或指定编码.
/当文件以二进制方式打开时,读写按照字节流方式.
/python本身将文件读取为一个行序列.