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任务!🚀


相关推荐
2603_965148116 小时前
如何解析JSON数据?API返回的商品信息处理教程
开发语言·数据库·python·自动化·json·api
jufeng13078 小时前
【系列:手搓自主 AI Agent:Hermes 架构原理剖析 · 第 8 篇】
python·ai agent·配置系统
circuitsosk8 小时前
跨境电商智能化实战:AI如何赋能客服自动回复、广告智能投放与供应链预测
大数据·人工智能·python·langchain·智能客服
2601_956319889 小时前
2026年零基础学量化:从看懂示例到写清条件和动作
人工智能·python
过期的秋刀鱼!9 小时前
LangChain-D1-模型的工作流程
人工智能·python·langchain
萤火工厂目视化设计9 小时前
智能制造与企业文化目视化浪潮下:中小工厂的机遇与挑战
python·制造
DeepVisionary10 小时前
从GPT-5.6 Sol的Ultrafast模式看推理速度竞赛:750 token/秒背后,Cerebras的晶圆级生意
python·自动化
leisoo809711 小时前
财报数据怎么排雷本地化Python构建财务异常预警系统
人工智能·python·算法
小柯南敲键盘11 小时前
跨马翻译:跨境电商批量图片翻译与视频字幕一站式工具
人工智能·python·音视频
卷无止境12 小时前
FastAPI Guard 全解析,从概念到工程落地的实战指南
后端·python