计算机只认识0,1,所以计算机的世界,
所有的文件数据都应该是0,1组成的。
但是为了方便人类能阅读及理解,
逐步有了ASCII,UTF-8, GBK, GB2312等编码格式。
以上如果测试同学听晕乎,记住以下两种计算机文件的类型即可。
纯文本文件
人类可以识别的文字文本文件,
其文件以纯文本形式存储数据(数字和字母包括ASCII码和其他各国语言文字)。
纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据,
以Windows操作系统为例,包括:
table.dataframe {
font-family: verdana,arial,sans-serif;
font-size:13px;
color:#333333;
border-width: 1px;
border-color: #999999;
border-collapse: collapse;
width:80%;
white-space:nowrap;
}
table.dataframe th {
background-color:#c3dde0;
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #a9c6c9;
text-align:center;
}
table.dataframe tr {
background-color:whit;
}
table.dataframe td {
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #a9c6c9;
text-align:left;
white-space:nowrap;
}
纯文本文件种类 | 文件后缀 |
---|---|
记事本文本文件 | .txt |
文本配置文件 | .cfg, .ini |
逗号分隔符文件 | .csv |
Log文件 | .log |
Python代码文件 | .py |
Java代码文件 | .java |
C, C++代码文件 | .c, .cpp, .h |
shell脚本文件 | .sh |
batch脚本文件 | .bat, .cmd |
html网页文件 | .html, .htm |
xml配置文件 | .xml |
json配置文件 | .json |
… | … |
二进制文件
机器码文件,即计算机能识别并直接可以运行的文件,
但是人类不能直接识别,只能通过其他软件来解析识别的文件,以Windows系统为例包括:
table.dataframe {
font-family: verdana,arial,sans-serif;
font-size:13px;
color:#333333;
border-width: 1px;
border-color: #999999;
border-collapse: collapse;
width:80%;
white-space:nowrap;
}
table.dataframe th {
background-color:#c3dde0;
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #a9c6c9;
text-align:center;
}
table.dataframe tr {
background-color:whit;
}
table.dataframe td {
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #a9c6c9;
text-align:left;
white-space:nowrap;
}
二进制文件种类 | 文件后缀 |
---|---|
可执行文件 | .exe |
视频文件 | .mp4, .3gp等 |
音频文件 | .mp3, .wma等 |
图片文件 | .jpg, .png等 |
Word文件 | .doc, .docx,.wps |
Excel文件 | .xls, .xlsx |
PPT文件 | .ppt, .pptx |
PDF文件 | |
安装包文件 | .msi |
压缩包文件 | .zip, .rar等 |
编译后的Python代码文件 | .pyc, pyo等 |
编译后的Java代码文件 | .class |
编译后的C++代码文件 | .obj |
如何快速鉴别文件类型。
使用Sublime文本编辑器或者Notepad++这类文本编辑器,尝试打开一个文件。
查看其内容。
查看纯文本文件:
如果显示的是人类能看懂的字符(英文字母,标点符号,中文,繁体,日语,韩语等等世界各国语言),
当然也可能是乱码(是由于编码格式转码导致的,比如当前编辑器不支持GBK, 则可能导致中文变乱码)。
查看二进制文件
如果显示的一堆整齐的16进制数据,则就是二进制可执行文件。
由于二进制文件只有1,0,直接存储0,1数量较大,且不方便阅读,
所以统一显示为16进制的,以方便存储与阅读,真正需要解析的时候,
肯定要转化成0,1的二进制序列才能被机器所处理。
Linux下其实一样,虽然Linux不带后缀,也可用Sublime打开看看
纯文本文件的优势
table.dataframe {
font-family: verdana,arial,sans-serif;
font-size:13px;
color:#333333;
border-width: 1px;
border-color: #999999;
border-collapse: collapse;
width:80%;
white-space:nowrap;
}
table.dataframe th {
background-color:#c3dde0;
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #a9c6c9;
text-align:center;
}
table.dataframe tr {
background-color:whit;
}
table.dataframe td {
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #a9c6c9;
text-align:left;
white-space:nowrap;
}
序号 | 二进制可执行文件的优势 |
---|---|
优势一 | 人类可识别,可快速看懂 |
优势二 | 方便配置,比如linux下vi就可以编辑这些文件,cat就可以查看这些文件, Windows记事本就可以编辑这些文本。 |
优势三 | 很容易创建,比如你创建一个.txt并编辑很简单。 你创建并编辑一个.mp4视频并实现成功播放试试?? |
二进制可执行文件的优势
table.dataframe {
font-family: verdana,arial,sans-serif;
font-size:13px;
color:#333333;
border-width: 1px;
border-color: #999999;
border-collapse: collapse;
width:80%;
white-space:nowrap;
}
table.dataframe th {
background-color:#c3dde0;
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #a9c6c9;
text-align:center;
}
table.dataframe tr {
background-color:whit;
}
table.dataframe td {
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #a9c6c9;
text-align:left;
white-space:nowrap;
}
序号 | 二进制可执行文件的优势 |
---|---|
优势一 | 可以直接被计算机识别并执行。 |
优势二 | 体积小,基本上都是编译压缩过。 |
优势三 | 信息传输安全,人类看不懂,比如源代码文件, 一般是编译后给到编译后的二进制可执行文件发布出去,比如.exe的 一般不会把源代码直接发布出去。 |
优势四 | 可以丰富多样化,可以组成声音,图像等数据。 |
学过python open()函数的都知道,用于打开文件进行读写。
其有多种模式,比如“w”,“r”模式是针对普通纯文本文件的读写操作。
“wb”, “rb”模式是针对二进制文件的读写操作。
只要是涉及二进制的,则必须加“b", 代表”binary“二进制文件操作。更多更好的原创文章,请到:www.zipython.com
原文链接:https://www.zipython.com/#/detail?id=7210086251064f5bac985f73f2b1eb73
原文地址:https://www.cnblogs.com/zipython/p/12336836.html