前言
在 Python 中,文件操作是非常常见的需求,Python 提供了多种方式来操作文本文件 (txt
)、逗号分隔值文件 (csv
) 和 Excel 文件 (xlsx
)。此外,库如 Pandas 和 NumPy 是数据分析的强大工具,也能简化这些文件的处理
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 常见操作
# 逐行读取
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 使用 DictReader
和 DictWriter
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 文件可以使用第三方库 openpyxl 或 pandas 来操作
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)) # 总和