前言

在 Python 中,文件操作是非常常见的需求,Python 提供了多种方式来操作文本文件 (txt)、逗号分隔值文件 (csv) 和 Excel 文件 (xlsx)。此外,库如 PandasNumPy 是数据分析的强大工具,也能简化这些文件的处理


1. 文本文件(TXT)操作

文本文件是最简单的数据存储方式,常用于存储纯文本数据

1.1 打开和关闭文件

  • 使用 open() 打开文件

  • 文件模式:

    • 'r':只读模式(默认)

    • 'w':写入模式,会清空文件内容

    • 'a':追加模式,在文件末尾写入数据

    • 'rb' / 'wb':二进制读/写

# 打开并读取文件
with open("example.txt", "r") as file:
    content = file.read()
    print(content)  # 输出文件内容
​
# 写入文件
with open("example.txt", "w") as file:
    file.write("Hello, World!\n这是一个文件写入示例。")
​
# 追加内容到文件
with open("example.txt", "a") as file:
    file.write("追加内容示例。\n")

1.2 常见操作

方法

描述

read()

读取整个文件内容

readline()

读取文件的一行

readlines()

读取所有行,返回一个列表

write(content)

写入字符串到文件

writelines(list)

将字符串列表写入文件,每个元素作为一行

# 逐行读取
with open("example.txt", "r") as file:
    for line in file:
        print(line.strip())  # 去除每行末尾的换行符

2. CSV 文件操作

CSV 文件是一种常用的表格数据格式,Python 提供了内置的 csv 模块进行操作

2.1 使用 csv 模块读取 CSV

import csv
​
# 读取 CSV 文件
with open("example.csv", "r", encoding="utf-8") as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

2.2 使用 csv 模块写入 CSV

# 写入 CSV 文件
data = [["Name", "Age", "City"], ["Alice", 25, "New York"], ["Bob", 30, "San Francisco"]]
​
with open("example.csv", "w", newline="", encoding="utf-8") as file:
    writer = csv.writer(file)
    writer.writerows(data)  # 写入多行

2.3 使用 DictReaderDictWriter

  • DictReader 将每行数据解析为字典,键为第一行的表头

  • DictWriter 用字典写入数据

# 使用 DictReader 读取
with open("example.csv", "r", encoding="utf-8") as file:
    reader = csv.DictReader(file)
    for row in reader:
        print(row)
​
# 使用 DictWriter 写入
data = [
    {"Name": "Alice", "Age": 25, "City": "New York"},
    {"Name": "Bob", "Age": 30, "City": "San Francisco"},
]
​
with open("example.csv", "w", newline="", encoding="utf-8") as file:
    fieldnames = ["Name", "Age", "City"]
    writer = csv.DictWriter(file, fieldnames=fieldnames)
    writer.writeheader()  # 写入表头
    writer.writerows(data)  # 写入数据行

3. Excel 文件操作(XLSX)

Excel 文件可以使用第三方库 openpyxlpandas 来操作

3.1 使用 openpyxl 操作 Excel

安装 openpyxl

pip install openpyxl
读取 Excel 文件
from openpyxl import load_workbook
​
# 打开 Excel 文件
workbook = load_workbook("example.xlsx")
sheet = workbook.active  # 获取活动表
​
# 逐行读取数据
for row in sheet.iter_rows(values_only=True):
    print(row)
写入 Excel 文件
from openpyxl import Workbook
​
# 创建新 Excel 文件
workbook = Workbook()
sheet = workbook.active
​
# 写入数据
sheet.append(["Name", "Age", "City"])  # 写入表头
sheet.append(["Alice", 25, "New York"])
sheet.append(["Bob", 30, "San Francisco"])
​
# 保存文件
workbook.save("example.xlsx")

3.2 使用 Pandas 操作 Excel

安装 Pandas:

pip install pandas openpyxl
读取 Excel 文件
import pandas as pd

# 读取 Excel
data = pd.read_excel("example.xlsx")
print(data)
写入 Excel 文件
data = pd.DataFrame({
    "Name": ["Alice", "Bob"],
    "Age": [25, 30],
    "City": ["New York", "San Francisco"]
})

data.to_excel("example.xlsx", index=False)

4. 简单说说 Pandas 和 NumPy

4.1 Pandas

Pandas 是一个强大的数据分析库,适合处理表格型数据

基本操作
import pandas as pd
​
# 创建 DataFrame
data = pd.DataFrame({
    "Name": ["Alice", "Bob"],
    "Age": [25, 30],
    "City": ["New York", "San Francisco"]
})
​
# 查看数据
print(data)
​
# 选择列
print(data["Name"])
​
# 筛选数据
filtered = data[data["Age"] > 25]
print(filtered)
​
# 写入和读取 CSV
data.to_csv("example.csv", index=False)
new_data = pd.read_csv("example.csv")
print(new_data)

4.2 NumPy

NumPy 是用于科学计算的库,擅长处理大型、多维数组和矩阵

基本操作
import numpy as np
​
# 创建数组
array = np.array([1, 2, 3, 4])
​
# 基本运算
print(array + 5)  # 输出 [6, 7, 8, 9]
print(array * 2)  # 输出 [2, 4, 6, 8]
​
# 创建二维数组
matrix = np.array([[1, 2], [3, 4]])
print(matrix)
​
# 统计信息
print(np.mean(array))  # 平均值
print(np.sum(array))   # 总和

总结

文件类型

操作工具

适用场景

TXT

内置 open

存储简单的文本数据

CSV

csv 模块 / Pandas

存储结构化表格数据,适合数据分析

XLSX

openpyxl / Pandas

处理复杂的 Excel 数据,适合多表、多格式的数据

第三方库

功能

适用场景

Pandas

数据清洗和分析

处理结构化数据,如 CSV 和 Excel

NumPy

数值计算和矩阵操作

需要高效处理多维数组或进行数值运算的场景