Python必备技能:输入输出、文件操作与OS模块

一、输入输出(I/O)

1. 标准输入输出

python 复制代码
# 输入
name = input("请输入姓名:")  # 返回字符串类型

# 输出
print("Hello", name, end="!")  # 默认换行,end参数修改结尾符
print(f"{name}今年{age}岁")    # f-string格式化(推荐)

2. 格式化输出

方式 示例 特点
% 格式化 "%.2f" % 3.1415 传统C风格
str.format() "{} {}".format(a, b) 灵活定位
f-string f"{price:.2f}" Python3.6+,最简洁

二、文件操作

1. 基础文件读写

python 复制代码
# 写入文件
with open("data.txt", "w", encoding="utf-8") as f:
    f.write("第一行内容\n")
    f.writelines(["第二行\n", "第三行\n"])

# 读取文件
with open("data.txt", "r", encoding="utf-8") as f:
    content = f.read()       # 全部内容
    lines = f.readlines()    # 按行读取为列表
    for line in f:           # 逐行迭代(内存友好)

2. 文件模式速查

模式 描述 文件存在 文件不存在
r 只读(默认) 打开 报错
w 写入(覆盖) 清空 创建
a 追加写入 追加 创建
x 排他创建 报错 创建
b 二进制模式(搭配rwax使用) - -
+ 读写模式(搭配rwax使用) - -

3. 实用技巧

python 复制代码
# 异常处理
try:
    with open("file.txt") as f:
        pass
except FileNotFoundError:
    print("文件不存在")

# JSON文件处理
import json
data = {"name": "Alice"}
with open("data.json", "w") as f:
    json.dump(data, f)  # 序列化

with open("data.json") as f:
    loaded = json.load(f)  # 反序列化

三、OS模块操作

1. 目录操作

python 复制代码
import os

# 目录管理
os.mkdir("new_dir")          # 创建单级目录
os.makedirs("a/b/c")         # 创建多级目录
os.rmdir("empty_dir")        # 删除空目录
os.removedirs("a/b/c")       # 递归删除空目录

# 路径检测
print(os.path.exists("file.txt"))  # 是否存在
print(os.path.isdir("docs"))       # 是否是目录

2. 路径操作

python 复制代码
from pathlib import Path  # 推荐替代os.path

# 路径拼接
full_path = os.path.join("dir", "sub", "file.txt")

# Pathlib操作
p = Path("data") / "test.csv"
print(p.parent)    # 获取父目录
print(p.suffix)    # 获取后缀名
p.touch()          # 创建空文件

3. 文件系统操作

python 复制代码
# 文件管理
os.rename("old.txt", "new.txt")  # 重命名/移动
os.remove("file.txt")            # 删除文件

# 遍历目录
for root, dirs, files in os.walk("project"):
    print(f"当前目录:{root}")
    print(f"包含文件:{files}")

# 获取信息
print(os.getcwd())      # 当前工作目录
print(os.listdir("."))  # 列出目录内容

4. 环境变量

python 复制代码
os.environ["API_KEY"] = "12345"  # 设置环境变量
value = os.getenv("API_KEY")     # 获取环境变量

四、最佳实践

  1. 文件操作必用with语句:自动处理资源释放
  2. 优先使用pathlib:比os.path更面向对象
  3. 明确指定编码 :推荐encoding="utf-8"
  4. 谨慎使用删除操作:先检查文件是否存在
  5. 处理路径使用os.path.join:避免平台兼容问题

扩展学习

  • 使用shutil模块进行高级文件操作(复制/压缩)
  • 学习tempfile模块处理临时文件
  • 探索glob模块进行文件模式匹配

通过掌握这些核心操作,可以高效处理Python中的各种I/O任务!🚀


相关推荐
刘立军9 分钟前
本地大模型编程实战(26)用langgraph实现基于SQL数据构建的问答系统(5)
人工智能·后端·python
初心_202416 分钟前
2. python协程/异步编程详解
java·前端·python
Psycho_MrZhang32 分钟前
Pytorch 反向传播
人工智能·pytorch·python
这里有鱼汤1 小时前
别怪 Python 慢,是你 import 的姿势不对!我亲测提速 3~5 倍
后端·python
hyhrosewind1 小时前
Python数据容器:数据容器的分类、数据容器特点总结、各数据容器遍历的特点、数据容器通用操作(统计,转换,排序)
python·数据容器的分类·各数据容器的特点·各数据容器的遍历·数据容器的通用操作·统计,转换,排序
灏瀚星空1 小时前
从基础到实战的量化交易全流程学习:1.3 数学与统计学基础——线性代数与矩阵运算 | 矩阵基础
笔记·python·学习·线性代数·数学建模·金融·矩阵
Amctwd1 小时前
【LLM】解析RAG增强检索技术:原理、实现与应用
python
乐享极致1 小时前
Python 数据可视化进阶:精准插入图表到指定 Excel 工作表
python·信息可视化·excel
火云牌神1 小时前
本地大模型编程实战(28)查询图数据库NEO4J(1)
python·llm·neo4j·langgraph
databook1 小时前
『Plotly实战指南』--交互功能进阶篇
python·数据分析·数据可视化