当前位置:首页 > 编程知识 > 正文

Python数据文件格式转换与储存

Python是一种极具功能性和灵活性的编程语言,广泛用于各种数据处理和分析工作中。数据文件格式转换与储存是Python编程工程师必须面对的一个重要问题。本文将从多个方面对Python数据文件格式转换和储存做出详细阐述,为读者提供全面而实用的参考。

一、CSV文件格式转换和储存

CSV(Comma Separated Value)文件格式是一种广泛用于数据文件交换的文件格式。Python提供了csv模块来支持CSV文件的读取、写入和转换。

下面是一个例子,在Python实现CSV文件的读取、转换和写入:

import csv

# 读取CSV文件
with open('input.csv', 'r') as f:
    reader = csv.reader(f)
    data = [row for row in reader]

# 转换数据
new_data = [[item[0], int(item[1]), float(item[2])] for item in data]

# 写入CSV文件
with open('output.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerows(new_data)

这段代码首先使用csv.reader()函数读取输入文件并将数据存储在data列表中。然后,我们使用Python的列表推导式将数据转换为新格式new_data。最后,我们使用csv.writer()函数将新数据写入输出文件。

二、JSON文件格式转换和储存

JSON(JavaScript Object Notation)文件格式是一种轻量级的数据交换格式,易于阅读和编写。Python提供了json模块来支持JSON文件的读取、写入和转换。

下面是一个例子,在Python实现JSON文件的读取、转换和写入:

import json

# 读取JSON文件
with open('input.json', 'r') as f:
    data = json.load(f)

# 转换数据
new_data = {
    'name': data['name'],
    'age': int(data['age']),
    'score': float(data['score'])
}

# 写入JSON文件
with open('output.json', 'w') as f:
    json.dump(new_data, f)

这段代码首先使用json.load()函数读取输入文件并将数据存储在data字典中。然后,我们使用Python的字典操作将数据转换为新格式new_data。最后,我们使用json.dump()函数将新数据写入输出文件。

三、XML文件格式转换和储存

XML(Extensible Markup Language)文件格式是一种通用的标记语言,用于表示结构化的数据和文档。Python提供了xml.etree.ElementTree模块来支持XML文件的读取、写入和转换。

下面是一个例子,在Python实现XML文件的读取、转换和写入:

import xml.etree.ElementTree as ET

# 读取XML文件
tree = ET.parse('input.xml')
root = tree.getroot()

# 转换数据
new_data = {
    'name': root.find('name').text,
    'age': int(root.find('age').text),
    'score': float(root.find('score').text)
}

# 写入XML文件
root = ET.Element('data')
name = ET.SubElement(root, 'name')
name.text = new_data['name']
age = ET.SubElement(root, 'age')
age.text = str(new_data['age'])
score = ET.SubElement(root, 'score')
score.text = str(new_data['score'])
tree = ET.ElementTree(root)
tree.write('output.xml')

这段代码首先使用xml.etree.ElementTree模块的ET.parse()函数读取输入文件并将数据存储在root对象中。然后,我们使用Python的XML操作将数据转换为新格式new_data。最后,我们使用ET.Element()函数将新数据写入输出文件。

四、SQLite数据库储存

SQLite是一种轻量级的关系型数据库管理系统,常用于嵌入式设备和移动应用中。Python提供了sqlite3模块来支持SQLite数据库的创建、连接和数据读写。

下面是一个例子,使用Python在SQLite数据库中创建表格并进行数据插入、查询和修改:

import sqlite3

# 连接数据库
conn = sqlite3.connect('example.db')
c = conn.cursor()

# 创建表格
c.execute('''CREATE TABLE students
             (name text, age integer, score real)''')

# 插入数据
data = [('Alice', 18, 95.7), ('Bob', 19, 92.5), ('Charlie', 20, 89.3)]
c.executemany('INSERT INTO students VALUES (?,?,?)', data)

# 查询数据
c.execute('SELECT * FROM students')
rows = c.fetchall()
for row in rows:
    print(row)

# 修改数据
c.execute('UPDATE students SET score = 90.0 WHERE name = ?', ('Bob',))
conn.commit()

# 关闭连接
conn.close()

这段代码首先使用sqlite3.connect()函数连接到example.db数据库。然后,我们使用c.execute()函数创建了students表格,并使用c.executemany()函数插入了多条数据。接着,我们使用c.execute()函数查询并输出了表格中的所有行。最后,我们使用c.execute()函数修改了Bob的成绩并使用conn.commit()函数提交变更。最后,我们使用conn.close()函数关闭了数据库连接。