结合 pandas 数据处理场景(读 Excel、处理表格、保存结果),Python 的输入输出核心围绕「数据读取」和「数据保存」,按控制台交互 → 文件 I/O → pandas 专属 I/O 的逻辑拆解。

一、基础输入输出(控制台交互)

1. 输出 print()

把变量、文本、DataFrame 显示在屏幕上,类似 Excel 选中单元格查看内容。

f-string 类比 Excel 的 & 拼接,还支持千分位、保留小数:

2. 输入 input()

暂停程序等用户输入,返回值默认是字符串,数值计算前必须 int()/float() 转换。

坑:input 返回字符串,sales*2 会得到 “5050”(字符串重复)而不是 100。

二、核心文件 I/O

1. 文本文件 .txt:open()

用 with open(路径, 模式, encoding=‘utf-8’) as f: 自动关闭文件。模式:

模式 作用 示例
r 只读(默认) 读已有文本
w 只写(覆盖) 新建或清空
a 追加(末尾添加) 给已有文件加内容

2. CSV 文件:read_csv / to_csv

CSV 比 Excel 体积小、兼容性强。注意中文用 utf-8-sig,index=False 不存行索引。

3. Excel 文件 .xlsx:需 openpyxl

pip install openpyxl(写 .xlsx)、xlrd(读旧 .xls)。用 ExcelWriter 可写多个工作表。

三、完整流程:读多表 → 合并 → 计算 → 保存

四、常见误区

  1. 中文乱码:读写用 encoding=‘utf-8-sig’ 而非 utf-8,适配 Windows;

  2. No module named ‘openpyxl’:pip install openpyxl(写 .xlsx)/ xlrd(读 .xls);

  3. 存了多余 Unnamed:0 列:to_csv/to_excel 加 index=False;

  4. 读 Excel 找不到 sheet:用 sheet_name=None 读全部,df_all.keys() 看真实表名;

  5. 路径错误:同文件夹直接写文件名;否则写完整绝对路径。

五、总结

核心逻辑是数据流转:输入(input / read_csv / read_excel)→ 处理(concat、assign、groupby)→ 输出(print / to_csv / to_excel)。工作中直接套「读取→处理→保存」模板,比如批量合并 12 个月销售数据自动生成汇总表。