对比项 | 二进制文件 | 文本文件 |
---|---|---|
定义 | 二进制文件直接由二进制数字0和1组成,不存在统一的字符编码。 | 文本文件是基于字符编码的文件,一般采用定长编码方式,如ASCII编码、UNICODE编码。 |
优势 | 1. 存储利用率高,因为编码是变长的,灵活利用存储空间。 | 1. 易于人类阅读和编辑,因为文本文件以字符形式存储,可以直接查看和编辑。 |
2. 适用于存储各种类型的数据,包括图像、音频、视频等。 | 2. 通用性强,因为基于字符编码,可以在不同的系统和软件中交换和读取。 | |
3. 在某些情况下,二进制文件的读写速度更快。 | ||
劣势 | 1. 不直观,无法直接查看和编辑文件内容。 | 1. 存储利用率相对较低,因为采用定长编码方式,可能会浪费存储空间。 |
2. 不同的二进制文件格式有不同的解析方式,增加了处理复杂性。 | 2. 对于非文本数据(如图像、音频等),文本文件无法直接存储,需要转换编码或进行Base64编码。 | |
3. 在国际化场景下,文本文件可能需要处理字符编码的问题,如Unicode编码和各种字符集的转换。 |
1. 二进制文件 [Binary file]
计算机文件基本上分为二种:二进制文件 和 ASCII(也称纯文本文件),
图形文件及文字处理程序等计算机程序都属于二进制文件。// 所以常常可以听到下载的二进制可执行文件
这些文件[二进制文件]含有特殊的格式及计算机代码。
ASCII 则是可以用任何文字处理程序阅读的简单文本文件。
文本文件只是二进制文件中的一种特例。
为了与文本文件相区别,人们又把除了文本文件以外的文件称为二进制文件,由于很难严格区分文本文件和二进制文件的概念,所以我们可以简单地认为,如果一个文件专门用于存储文本字符的数据,没有包含字符以外的其他数据,我们就称之为文本文件,除此之外的文件就是二进制文件。
https://baike.baidu.com/item/二进制文件/996661?fr=aladdin
2. 纯文本文件 [Text file]
纯文本 由可打印字符组成,人可以直接阅读和理解其形式。
例如:
百科=百度百科、整数类型 甲变量。
纯文本并非意味着文本是无结构的;
标准通用标记语言[SGM或SGML]和HTML、XML都是有结构定义良好的的纯文本的好例子。
通过纯文本,你可以做你通过某种二进制格式所能做的每件事情,其中包括版本管理。
与直接的二进制编码相比,纯文本所处的层面往往更高;
前者[二进制文件]通常直接源自实现。
假定你想要存储叫做uses_menus的属性,其值既可为真/true,也可为假/false。
使用纯文本,你可以将其写为:myprop.uses_menus=FALSE 把它与0010010101110101对比一下。
大多数二进制格式的问题在于,理解数据所必需的语境与数据本身是分离的。
你人为地使数据与其含义脱离开来。数据也可能加了密;没有应用逻辑对其进行解析,这些数据绝对没有意义。但是,通过纯文本,你可以获得自描述(self-describing)的、不依赖于创建它的应用的数据流。
https://baike.baidu.com/item/二进制文件/996661?fr=aladdin
补充:
二进制文件, 跟存储方式[在硬盘上]没有关系。
即不是因为存储格式为二进制的关系, 而是这些文件 含有特殊的格式及计算机代码.
格式类型 | 优势 | 劣势 |
---|---|---|
文本格式 | 1. 简单易用,无需特殊软件或中间件 | 1. 查询效率低,特别是对于大型文本文件 |
(如TXT、CSV等) | 2. 适用于小型工程或查询效率要求不高的应用 | 2. 难以保证数据完整性和一致性 |
3. 可直观查看和编辑数据 | 3. 不支持事务处理 | |
4. 不适合存储大量数据 | ||
数据库格式 | 1. 结构化数据存储,确保数据的完整性和一致性 | 1. 数据库维护成本较高 |
(如MySQL、Oracle等) | 2. 高效查询,支持索引和优化查询性能 | 2. 需要安装和配置数据库软件 |
3. 支持大量数据存储,不影响程序运行速度 | 3. 需要编写SQL语句操作数据库 | |
4. 支持多用户并发访问和共享数据 | 4. 开发成本可能高于文本文件 | |
5. 提供数据安全性、事务处理和并发控制等功能 |
文本格式和数据库格式在数据存储和管理方面有着显著的区别,各自具有不同的优势和劣势。以下是对这两种格式的比较:
文本格式:
优势:
劣势:
数据库格式:
优势:
劣势:
综上所述,文本格式和数据库格式各有优缺点。选择哪种格式取决于具体的应用需求和场景。在需要简单、通用和易于编辑的数据存储方案时,文本格式可能是一个更好的选择。而在需要高效查询、数据安全性和结构化数据存储的情况下,数据库格式则更具优势。
件类型 | 定义 | 优势 | 劣势 |
---|---|---|---|
INI | INI文件是一种简单的配置文件格式,用于存储应用程序的配置信息,通常以键值对的形式存储数据。 | 1.简单易读易写 2.适用于小型配置项 | 1.功能较为简单,不适合复杂数据结构 2.缺乏标准化 |
CSV | CSV(Comma Separated Values)文件是一种表格数据格式,由逗号分隔的值组成,常用于数据交换和存储。 | 1.通用性强,可在不同系统和软件中导入导出 2.结构简单,易于生成和解析 | 1.只支持基本文本数据类型 2.缺乏标准化,不同程序解析方式可能不同 |
XML | XML(Extensible Markup Language)是一种标记语言,用于描述数据的结构和含义,以标签的形式表示数据。 | 1.结构化数据表示,清晰展示数据层次和关系 2.跨平台支持,适用于数据交换 | 1.数据冗余度较高,文件体积相对较大 2.解析复杂度高,需要处理标签嵌套关系 |
JSON | JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,基于JavaScript语法,易于阅读和编写。 | 1.轻量级,易于阅读和编写 2.支持复杂数据结构,适用于Web应用程序 | 1.对人类可读性一般,相比于INI和CSV稍显复杂 |
ini 文件是Initialization File的缩写,即初始化文件,这是用来配置应用软件以实现不同用户的要求。
INI文件由节、键、值组成。
一个简单的的INI文件例子如下:
[Setting]
INIT_FLAG=0;
VOLUME=1;
LANGUAGE=1;
如上例子,[Setting]就是节,=号左边的值是键,=号右边的是值。
1. 简单易用
ini 文件格式具有非常清晰的语法结构,除 Section 和 Key 之外,它几乎没有其他标记。这种简单性使得 ini 文件易于编辑、维护和管理,符合 Linux 操作系统的实际需求。
2. 跨平台性好
ini 文件格式在不同的操作系统下,都有着相同的表现方式和处理方法,这种跨平台性使得程序员可以方便地将其应用于不同的操作系统和软件中。
3. 扩展性强
ini 文件格式的 Key-Value 对在文件中自行组织和分组,可以任意嵌套,这种特性使得 ini 格式文件具有非常强的扩展性,保证了日后对系统的扩展和更新不受限制。
代码示例:
import csv
# 写入CSV文件
data = [
['Name', 'Age', 'City'],
['John', '25', 'New York'],
['Alice', '30', 'London'],
['Bob', '35', 'Paris']
]
with open('data.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(data)
# 读取CSV文件
with open('data.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
print(row)
代码示例:
import xml.etree.ElementTree as ET
# 创建XML文件
root = ET.Element('root')
employee = ET.SubElement(root, 'employee')
name = ET.SubElement(employee, 'name')
age = ET.SubElement(employee, 'age')
city = ET.SubElement(employee, 'city')
name.text = 'John'
age.text = '25'
city.text = 'New York'
tree = ET.ElementTree(root)
tree.write('data.xml')
# 解析XML文件
tree = ET.parse('data.xml')
root = tree.getroot()
for employee in root.findall('employee'):
name = employee.find('name').text
age = employee.find('age').text
city = employee.find('city').text
print(name, age, city)
代码示例:
import json
# 创建JSON文件
data = {
'employee': {
'name': 'John',
'age': 25,
'city': 'New York'
}
}
with open('data.json', 'w') as file:
json.dump(data, file)
# 解析JSON文件
with open('data.json') as file:
data = json.load(file)
name = data['employee']['name']
age = data['employee']['age']
city = data['employee']['city']
print(name, age, city)
「File」计算机常见文件数据格式_数据存储格式_何曾参静谧的博客-CSDN博客
https://www.cnblogs.com/mymindview/p/8528600.html
文件系统 - 文件类型 - 二进制/文本类型_二进制文件-CSDN博客
C语言解析INI文件(利用开源的iniparse库) - 知乎
Python学习 -- 常用数据交换格式(CSV、XML、JSON) - 知乎