Python数据文件格式转换与储存
- 编程知识
- 2023-09-10
- 2
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()函数关闭了数据库连接。