欢迎访问宙启技术站
智能推送

Python中如何实现文件读取和写入?

发布时间:2023-06-23 11:15:54

Python中提供了很多用于文件读取和写入的标准库,其中包括内置函数open()、模块csv、模块json、模块pickle等。本文将分享如何使用这些工具进行文件读取和写入。

一、打开文件

要读取或写入一个文件,首先要用open()函数打开一个文件。open()函数需要两个参数:文件名,打开模式(mode)。

打开模式参数(mode)有以下几种:

- "r",以只读模式打开文件。默认的模式就是只读模式;

- "w",以写入模式打开文件。如果文件存在,则先清空该文件,然后写入新数据;

- "x",以写入模式打开文件,但如果文件已经存在,则返回错误;

- "a",以追加模式打开文件。如果文件不存在,则创建这个文件;

- "b",以二进制模式打开文件;

- "t",以文本模式打开文件。默认的模式就是文本模式;

- "+",可以同时读写一个文件。

下面是打开一个文件的示例:

f = open("file.txt", "r")

二、读写文件

有了打开的文件,就可以进行读写操作了。这里我们介绍内置函数open()以及模块csv、模块json、模块pickle中的一些基本方法。

1. 内置函数open()

内置函数open()支持最基本的读写操作,可以通过read()、write()方法来实现。

# 打开文件
f = open("file.txt", "w")

# 写入数据
f.write("Hello, World!")

# 关闭文件
f.close()

这里我们打开文件file.txt,并使用write()方法写入数据。

读取文件同样可以借助内置方法read()。

# 打开文件
f = open("file.txt", "r")

# 读取数据
print(f.read())

# 关闭文件
f.close()

这里我们使用read()方法读取file.txt文件中的数据并输出到控制台。

需要注意的是,在使用open()函数打开文件后,需要使用close()函数来关闭文件。不关闭文件可能导致一些不必要的问题,例如,数据丢失、内存泄漏等问题。

2. 模块csv

Python的模块csv可以轻松地读取和写入CSV文件。CSV文件是一种常用的文本文件格式,用于存储多行数据,每行数据由逗号分隔。

下面是读取CSV文件的示例:

import csv

with open("file.csv", "r") as csvfile:
    csvreader = csv.reader(csvfile)
    for row in csvreader:
        print(row)

这里我们通过with关键字打开文件,并使用csv模块中的reader()方法读取文件中的内容。注意,with语句会在读取完文件后自动关闭文件。

也可以使用csv模块中的DictReader类读取CSV文件。如下所示:

import csv

with open("file.csv", "r") as csvfile:
    csvreader = csv.DictReader(csvfile)
    for row in csvreader:
        print(row)

这里我们使用DictReader类读取CSV文件,并按字典的方式输出每行数据。

下面是写入CSV文件的示例:

import csv

with open("file.csv", "w", newline='') as csvfile:
    csvwriter = csv.writer(csvfile)
    csvwriter.writerow(['Name', 'Age', 'Gender'])
    csvwriter.writerow(['Tom', '30', 'M'])
    csvwriter.writerow(['Lucy', '22', 'F'])

这里我们打开一个文件file.csv,并写入三行数据: 行为表头,第二行和第三行为数据行。

3. 模块json

模块json用于解析和生成JSON数据。JSON是一种轻量级数据交换格式,并且易于人阅读和编写。JSON数据格式是由键值对构成的,每个键值对之间用逗号分隔。

下面是读取JSON文件的示例:

import json

with open("file.json", "r") as jsonfile:
    data = json.load(jsonfile)
    print(data)

这里我们通过with语句打开文件file.json,并使用json.load()方法将文件中的数据读取到变量data中。注意,with语句会在读取完文件后自动关闭文件。

也可以使用json.loads()方法读取字符串格式的JSON数据。如下所示:

import json

data = '{"name": "Tom", "age": 30, "gender": "M"}'

json_data = json.loads(data)

print(json_data)

这里我们使用json.loads()方法读取一个字符串格式的JSON数据,并将其转化为Python字典格式。

下面是写入JSON文件的示例:

import json

data = {'name': 'Tom', 'age': 30, 'gender': 'M'}

with open("file.json", "w") as jsonfile:
    json.dump(data, jsonfile)

这里我们将data字典数据写入JSON文件file.json中。

4. 模块pickle

模块pickle用于序列化和反序列化Python对象结构。序列化过程是将Python对象表示为字节串的过程,即将其转化为类似于二进制的格式;反序列化是将字节串转化为Python对象的过程。

下面是读取pickle文件的示例:

import pickle

with open("file.pkl", "rb") as picklefile:
    data = pickle.load(picklefile)
    print(data)

这里我们通过with语句打开文件file.pkl,并使用pickle.load()方法将文件中的数据读取到变量data中。注意,在读取pickle文件时需要使用二进制模式打开文件。

下面是写入pickle文件的示例:

import pickle

data = {'name': 'Tom', 'age': 30, 'gender': 'M'}

with open("file.pkl", "wb") as picklefile:
    pickle.dump(data, picklefile)

这里我们将data字典数据写入pickle文件file.pkl中,并在写入时需要使用二进制模式打开文件。

三、总结

本文介绍了Python中的一些基本的文件读写操作,包括内置函数open()、模块csv、模块json、模块pickle等。读写文件是Python编程的基础操作之一,通过本文的介绍,您可以轻松地使用这些工具进行文件读写操作。如果需要更详细的了解,可以查看Python官方文档或相关专业书籍。