Python语言因其简洁、易读易写而备受青睐。对于数据科学家及工程师而言,Python在数据存储及处理方面拥有着强大的能力。因此,Python的文件读写操作也是数据科学家必须掌握的技能之一。在本文中,我们将从以下几个方面介绍Python文件读写操作及代表性数据存储方式:
一、文件读写概述
文件读写是日常开发工作中的一个重要部分。Python内置的open()函数可以打开一个文件,而利用Python的write()方法和read()方法则可以对该文件进行写入和读取操作。
下面的示例演示了如何打开一个文件:
file = open("test.txt", "r")
我们可以使用不同的参数实现不同的方式来打开文件:
- "r":以只读方式打开文件。
- "w":以写入方式打开文件,如果文件存在,则会清空该文件原有内容。
- "a":以追加模式打开文件,不存在则会创建一个新文件。
- "b":以二进制模式打开文件,文件类型通常用于非文本文件,如图像、音频等。
下面的示例演示了如何以写入模式打开文件并向其中写入数据:
file = open("test.txt", "w") file.write("Hello World!")
执行完毕后,我们可以打开该文件并查看其中的内容。
二、CSV文件读写操作
CSV(Comma-Separated Value)文件是一种常见的电子表格数据格式,它以逗号分隔行中的数据。Python自带的csv包可用于读写CSV文件。
下面的示例演示了如何利用csv包读取CSV文件并输出其中的内容:
import csv with open('test.csv') as csvfile: readCSV = csv.reader(csvfile, delimiter=',') for row in readCSV: print(row)
上述代码使用了Python的with语句,这个语句会自动调用文件的close()方法来关闭文件。在这个示例中,代码会以以逗号为强制分隔符将文件内容读取为一组列表。然后通过迭代这些列表将文件的内容输出到控制台。
另外,如果我们需要将数据写入CSV文件,我们需要使用csv.writer()方法。下面的示例演示了如何利用csv.writer()方法将数据写入CSV文件:
import csv with open('test.csv', mode='w', newline='') as csvfile: writeCSV = csv.writer(csvfile, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) writeCSV.writerow(["John Smith", "Accounting", "November"]) writeCSV.writerow(["Erica Meyers", "IT", "March"])
在这个示例中,我们在逗号分隔值文件中写入了两行数据,并且设置了Python的quotechar参数以在数据中包含引号。
三、JSON文件读写操作
JSON(JavaScript Object Notation)是一种常见的数据交换格式,其出于具有轻量级、易读性以及易于编写的特点。Python的json包可用于读写JSON文件。
下面的示例演示了如何利用json包读取JSON文件并输出其中的内容:
import json with open('test.json') as jsonFile: jsonData = json.load(jsonFile) for item in jsonData: print(item)
在这个示例中,我们使用json.load()函数将JSON文件转换为Python对象。由于JSON文件可能包含嵌套结构,因此可以通过迭代对象的方式来输出JSON文件中的内容。
如果需要将数据写入JSON文件,我们可以使用json.dump()方法。下面的示例演示了如何利用json.dump()方法将Python对象写入到JSON文件中:
import json data = { "name" : "John", "age" : 30, "city" : "New York" } with open('test.json', 'w') as jsonFile: json.dump(data, jsonFile)
在这个示例中,我们定义了一个Python对象并将其保存到JSON文件中。注意,在使用json.dump()方法时,我们必须指定文件的编码方式,以确保写入正确的编码。
四、SQLite数据库读写操作
SQLite是一种轻量级的关系型数据库管理系统。Python的sqlite3包可用于在Python中操作SQLite数据库。
下面的示例演示了如何连接到SQLite数据库及创建表:
import sqlite3 connection = sqlite3.connect('test.db') cursor = connection.cursor() cursor.execute('CREATE TABLE employees (id integer, name text, salary real, department text, position text)')
在这个示例中,我们使用sqlite3.connect()函数连接到指定的SQLite数据库。然后,我们使用cursor对象执行SQL语句以创建一个新表。
如果需要在数据库中插入数据,我们可以使用cursor.execute()方法或cursor.executemany()方法。下面的示例演示了如何使用cursor.execute()方法将数据插入到表中:
cursor.execute("INSERT INTO employees VALUES (1, 'John', 10000, 'IT', 'Manager')") cursor.execute("INSERT INTO employees VALUES (2, 'Jane', 20000, 'HR', 'Manager')")
在这个示例中,我们将两条数据分别插入到employees表中。由于SQLite是支持事务的,因此插入大量数据时应使用这个特性来增加处理速度。
如果需要从数据库中读取数据,我们可以使用游标(cursor)对象。下面的示例演示了如何使用游标(cursor)对象读取表中的数据:
cursor.execute("SELECT * FROM employees") rows = cursor.fetchall() for row in rows: print(row)
在这个示例中,我们通过SQL语句将表中的数据读取到SQLite的数据类型中,并通过Python迭代这些数据以输出到控制台。
五、总结
在Python中,文件读写及常见的数据存储方式是任何Python开发人员必须掌握的技能之一。利用Python自带的函数和包,文件及数据读写变得更加便捷、高效。掌握这些技能可以让工程师更快地处理大量数据、更加高效地完成相关任务。