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


相关推荐
Doc.S37 分钟前
【保姆级教程】在AutoDL容器中部署EGO-Planner,实现无人机动态避障规划
人工智能·python·信息可视化·机器人
Predestination王瀞潞1 小时前
Python3:Eighth 函数
开发语言·python
蒋星熠1 小时前
多模态技术深度探索:融合视觉与语言的AI新范式
人工智能·python·深度学习·机器学习·分类·数据挖掘·多分类
xier_ran1 小时前
Python从入门到精通:(2)Python 核心进阶教程从数据结构到面向对象
linux·windows·python·microsoft
程序员三藏2 小时前
接口自动化测试框架搭建详解
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
skywalk81632 小时前
老显卡老cpu用vllm推理大模型失败Intel(R) Xeon(R) CPU E5-2643 v2
人工智能·pytorch·python·vllm
程序员爱钓鱼3 小时前
Python编程实战:文件读写(文本/二进制)详解与实战
后端·python·ipython
百锦再3 小时前
第6章 结构体与方法
android·java·c++·python·rust·go
TheInk3 小时前
python学习笔记之Python基础教程(crossin全60课)
笔记·python·学习
尘缘浮梦3 小时前
RobotFramework框架环境搭建
linux·开发语言·python