← 返回首页

第9章 · 文件读写

Python文件操作

文件读写是数据处理和分析的基础技能。本章将介绍Python中常见的文件格式及其读写方法,包括文本文件、CSV文件和Excel文件,帮助您掌握数据导入导出的核心技能。

学习目标:完成本章后,您将能够理解不同文件格式的特点和用途,掌握文本文件、CSV文件和Excel文件的读写方法,为数据分析和处理打下坚实基础。

本章内容概览

文件后缀名及用途

# Python中常见的文件格式及其用途
print("=== 常见文件格式 ===")
file_formats = {
    ".txt": "纯文本文件,存储简单文本数据",
    ".csv": "逗号分隔值文件,存储表格数据",
    ".xlsx": "Excel文件,存储复杂表格和数据",
    ".json": "JSON格式文件,存储结构化数据",
    ".xml": "XML格式文件,存储结构化数据",
    ".py": "Python源代码文件",
    ".html": "网页文件",
    ".jpg/.png": "图像文件"
}

for extension, description in file_formats.items():
    print(f"{extension}: {description}")

# 文件路径操作
import os
print("\n=== 文件路径操作 ===")
current_dir = os.getcwd()
print(f"当前工作目录: {current_dir}")

# 检查文件是否存在
file_path = "example.txt"
file_exists = os.path.exists(file_path)
print(f"文件 '{file_path}' 是否存在: {file_exists}")

txt文档的读写方法

# 文本文件读写示例
print("=== 文本文件读写 ===")

# 写入文本文件
with open("example.txt", "w", encoding="utf-8") as file:
    file.write("这是第一行文本\n")
    file.write("这是第二行文本\n")
    file.write("这是第三行文本\n")
    file.write("Python文件读写操作示例\n")
print("文件写入完成")

# 读取文本文件 - 逐行读取
print("\n=== 逐行读取文件 ===")
with open("example.txt", "r", encoding="utf-8") as file:
    for line_num, line in enumerate(file, 1):
        print(f"第{line_num}行: {line.strip()}")

# 读取整个文件
print("\n=== 读取整个文件 ===")
with open("example.txt", "r", encoding="utf-8") as file:
    content = file.read()
    print("文件内容:")
    print(content)

# 追加内容到文件
print("\n=== 追加内容 ===")
with open("example.txt", "a", encoding="utf-8") as file:
    file.write("这是追加的内容\n")
print("内容追加完成")

CSV文档的读写

import csv
import pandas as pd

print("=== CSV文件读写 ===")

# 使用csv模块写入CSV文件
print("使用csv模块写入CSV文件...")
with open("data.csv", "w", newline="", encoding="utf-8") as file:
    writer = csv.writer(file)
    # 写入表头
    writer.writerow(["姓名", "年龄", "城市", "工资"])
    // 写入数据
    writer.writerow(["张三", 25, "北京", 5000])
    writer.writerow(["李四", 30, "上海", 8000])
    writer.writerow(["王五", 35, "广州", 6000])
print("CSV文件写入完成")

// 使用csv模块读取CSV文件
print("\n使用csv模块读取CSV文件...")
with open("data.csv", "r", encoding="utf-8") as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

// 使用pandas读取CSV文件
print("\n使用pandas读取CSV文件...")
df = pd.read_csv("data.csv")
print("数据框内容:")
print(df)

// 使用pandas写入CSV文件
print("\n使用pandas写入CSV文件...")
// 创建新数据
new_data = {
    "姓名": ["赵六", "孙七"],
    "年龄": [28, 32],
    "城市": ["深圳", "杭州"],
    "工资": [7500, 9000]
}
new_df = pd.DataFrame(new_data)
new_df.to_csv("new_data.csv", index=False, encoding="utf-8")
print("新CSV文件写入完成")

EXCEL文档的读写

import pandas as pd

print("=== Excel文件读写 ===")

// 创建示例数据
data = {
    "产品名称": ["笔记本电脑", "智能手机", "平板电脑", "智能手表"],
    "品牌": ["Dell", "Huawei", "Apple", "Xiaomi"],
    "价格": [5999, 3999, 3299, 899],
    "库存": [50, 100, 75, 200],
    "销量": [120, 300, 180, 500]
}

df = pd.DataFrame(data)
print("原始数据:")
print(df)

// 写入Excel文件
print("\n写入Excel文件...")
df.to_excel("products.xlsx", index=False, sheet_name="产品信息")
print("Excel文件写入完成")

// 读取Excel文件
print("\n读取Excel文件...")
excel_data = pd.read_excel("products.xlsx", sheet_name="产品信息")
print("从Excel读取的数据:")
print(excel_data)

// 多个工作表操作
print("\n多个工作表操作...")
// 创建第二个工作表数据
sales_data = {
    "月份": ["1月", "2月", "3月", "4月", "5月"],
    "销售额": [150000, 180000, 220000, 190000, 250000],
    "利润": [45000, 54000, 66000, 57000, 75000]
}
sales_df = pd.DataFrame(sales_data)

// 使用ExcelWriter写入多个工作表
with pd.ExcelWriter("company_data.xlsx") as writer:
    df.to_excel(writer, sheet_name="产品信息", index=False)
    sales_df.to_excel(writer, sheet_name="销售数据", index=False)
print("多工作表Excel文件写入完成")

// 读取多个工作表
print("\n读取多个工作表...")
products_sheet = pd.read_excel("company_data.xlsx", sheet_name="产品信息")
sales_sheet = pd.read_excel("company_data.xlsx", sheet_name="销售数据")

print("产品信息表:")
print(products_sheet)
print("\n销售数据表:")
print(sales_sheet)

子页面导航