您的位置:

Python文件读写操作,数据存储必备技能

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自带的函数和包,文件及数据读写变得更加便捷、高效。掌握这些技能可以让工程师更快地处理大量数据、更加高效地完成相关任务。