python对于各种文件类型的操作

hkt 发布于 2025-07-30 19 次阅读


通常在没有引入模块时只能对txt文件进行处理,如果想要对csv、ini、json、yaml文件进行处理需要引入模块。在此介绍各种文件类型的操作,对于后期的自动化和脚本数据处理有很大的帮助。

csv文件

CSV(Comma-Separated Values)文件是一种常见的文本文件格式,用于存储表格数据,通常由电子表格软件或数据库导出。python自带csv模块

读取 CSV

    reader(文件对象, delimiter): 读取csv文件中的内容,并制定csv文件中数据的分割符,返回值为可迭代类型,循环可迭代类型,会获取到csv文件中的每行数据,每行数据的类型为列表

import csv

with open('data.csv', mode='r', encoding='utf-8') as f:
    reader = csv.reader(file, delimiter=',')  # 指定分隔符
    for row in reader:
        print(row)  # 每行作为列表返回

写入csv

    writer(文件对象, delimiter): 向csv文件中写入数据,写之前需要先获取csv文件writer。writer获取到之后,可以使用writerow写入单行数据,也可以使用writerows写入多行数据。
import csv

data = [
    ['Name', 'Age'],
    ['tom', 30],
    ['lily', 25]
]

"""
data=[
    ("Name", "Age", "City"),
    ("Alice", 25, "New York"),
    ("Bob", 30, "Los Angeles")
]
"""

with open('data.csv', mode='w', encoding='utf-8') as f:
    writer = csv.writer(file, delimiter=';')  # 指定分隔符
    writer.writerows(data)  # 写入

json文件

json是用来存储简单的数据结构和对象的文件。json是一种轻量级的数据交换格式,基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据,用于许多Web应用程序来进行数据交换。python自带json模块。json数据在写入时一定要覆盖的写入,因为json数据必须满足json格式。

json的文件格式或数据格式

1.列表方式 [ ]---列表套字典或者列表套列表

2.字典方式 { }--字典套字典或者字典套列表

json模块对json数据进行操作

  • json.loads(字符串):将json格式的字符串数据序列化(转成)为python对象(字典/列表)
  • json.load(文件对象):将文件对象对应的json文件中的数据序列化(转成)为python对象(字典/列表)
  • json.dumps(python对象[, ensure_ascii=False]):将python的对象反序列化为json格式的字符串
  • json.dump(python对象, 文件对象[, ensure_ascii=False]):将python的对象反序列化为json格式的字符串, 在写入到文件对象中。
  • eval()函数,可直接转换为相应的格式,例如"[1,2,3,4]",慎用。

yaml文件

yaml其实也类似于 json、txt ,它们都属于一种文本格式。在我们的实际工作中, yaml 文件经常作为服务期配置文件来使用。 比如一些定义好的内容,并且不会修改的信息,我们就可以通过定义 yaml 文件,然后通过读取这样的文件,将数据导入到我们的服务中进行使用。

yaml文件的格式

  1. 大小写敏感
  2. 使用缩进表示层级关系
  3. 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可,通常开头缩进两个空格
  4. 不支持Tab键制表符缩进,只使用空格缩进
  5. 字符后缩进一个空格,如冒号,逗号,短横杆(-)等
  6. "—“表示YAML格式,一个文件的开始,用于分隔文件间
  7. ”#”表示注释 (yaml文件只有行注释)

yaml支持的数据结构有三种。

  • 对象:键值对的集合,又称为字典(dictionary)key: value
  • 数组:一组按次序排列的值,又称为 列表(list)- Apple
  • 纯量(scalars):单个的、不可再分的值 name: "John"

yaml 中的值有以下基本类型:

  • 字符串
  • 整形
  • 浮点型
  • 布尔型
  • null
  • 时间
  • 日期

示例

yaml文件的操作

在python中要操作yaml文件需要引入第三方模块pyyaml

pip install pyyaml

import yaml
    yaml.load(yaml文件的对象, Loader=yaml.FullLoader): 会将yaml文件中的数据序列化为python的对象(字典/列表)

with open("./data1/data.yaml", mode="r", encoding="utf-8") as f:
    # res = yaml.load(f, Loader=yaml.FullLoader)
    res = yaml.load(f, Loader=yaml.CLoader)
    print(res)

ini文件

ini文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式。

ini文件的格式:ini文件由节、键、值组成。

示例

[Startup]
RequireOS=Windows 7
RequireMSI=3.1
RequireIE=7.0.0000.0
Require64BitVCRT=1
[Windows 7]
PlatformID=2
MajorVersion=6
MinorVersion=1

ini文件操作

python使用的时configparser模块读取ini文件。configparser是第三方的

pip install configparser

示例

import configparser

# 创建Configparser对象
conf = configparser.ConfigParser()
# 使用Configparser的对象的read方法读取ini
res = conf.read("./data1/data.ini", encoding="utf-8")
print(res)
# 使用Configparser的对象的get的方法获取ini的数据。
value = conf.get("节点名称", "data")
print([value])

print([conf.get("mysql", "host")])
print([conf.get("mysql", "port")])
print(conf.get("mysql", "user"))
print(conf.get("mysql", "password"))

excel文件

Microsoft Excel 是微软公司开发的电子表格软件,属于 Microsoft Office 套件的一部分,广泛用于数据处理、统计分析、财务建模、可视化等领域。它支持公式计算、图表制作、宏编程(VBA)等功能,适用于个人、企业和学术研究。

excel的格式

excel由工作簿和工作表组成

  • workbook:工作簿,即整个excel文件
  • worksheet:工作表,一个excel文件中可以有多个工作表

excel的操作

在python中使用excel需要先引入openpyxl第三方模块

pip install openpyxl

操作excel的流程

openpyxl创建excel:
1:创建工作簿
wb = Workbook()
2:创建工作表
i: 创建新的工作表
ws = wb.create_sheet("工作表的名称"[, number])
ii: 使用自带工作表
ws = wb.active
3:向工作表中写入数据
i: 向指定单元格写入数据
ws["列好行号"] = value
注意:单独的一个才能写入
ii: 向没有数据的新行追加数据
ws.append(有序的可迭代容器)
注意:有序的可迭代容器的元素必须是一个单独的值
4:保存工作簿
wb.save("excel的路径")

openpyxl读取excel:
1:加载工作簿
wb = openpyxl.load_workbook("excel路径")
2:获取工作表
ws = wb["工作表的名称"]
3:读取工作表中的数据
i:获取指定的单元格。工作表["列好行号"]
单元格的操作:
value: 获取单元格的数据. 单元格的数据一般为:数值类型,字符串,None,bool,datetime类型...
row: 获取单元格对应的行号
column:获取单元格的列号
coordinate: 获取单元格的坐标
ii:工作表是可迭代类型的,可以直接对工作表进行for循环,可以得到有数据的行,行的数据类型为元组,元组的元素为有数据的单元格(Cell)。
iii: 可以根据工作表获取有数据的最大列号(max_column)和最大行号(max_row)

4:读取excel数据时,也可以写入数据(按照上面的方式写入数据),写入完之后一定要保存。

with结构

我们都知道打开文件方式使用open()函数,再对文件操作完成后需要调用close()方法来关闭文件。实际上Python提供了with语句来管理资源关闭,比如可以把打开的文件放在with语句中,这样with语句可以帮我们自动关闭文件。

with open("文件路径", mode="模式") as fp:
    代码块            # 无论中间代码执行是否错误,最后都会关闭文件

with实现的原理要涉及到另外一个概念,就是上下文管理器(Context Manager)。所谓上下文管理器,就是实现了__enter__()__exit__()方法的对象。上下文管理器对象可以使用with关键字。

此作者没有提供个人介绍。
最后更新于 2025-08-20