Pythonday07

本文介绍Python中的文件管理方法,包括文件的打开、读取、写入及关闭等基本操作,并详细解释不同文件模式的特点。此外,还介绍了模块的概念及其导入方式,以及Python搜索模块的路径管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件的管理

输入(raw_input/input)—> 程序处理 —> 输出(print)

文件管理的三大步骤:

- 打开文件; f = open("filename")    
- 处理文件; 
    f.read()                # 可以读取文件内容
    f.write("hello")        # 不能往文件中写入,因为默认文件以r的模式打开;
- 关闭并保存文件; f.close()

文件的几种模式总结:

r模式:

若文件不存在,直接报错;
文件只能读取,不能写入;

w模式:

若文件不存在,直接创建文件;
文件只能写入,不能读取;
打开文件时会清空原有文件内容;

r+模式:

若文件不存在,直接报错;
文件可以读也可以写;
具体写入的内容在哪里,由文件指针(句柄)决定;

w+模式:

若文件不存在,直接创建文件;
文件既能写入也能读取;
打开文件时会清空原有文件内容;

a

若文件不存在,直接创建文件;
文件只能写入,不能读取;
写入的内容直接追加到文件最后;

a+

若文件不存在,直接创建文件;
文件既能写入也能读取;
写入的内容直接追加到文件最后;

b

以二进制的方式打开文件,可以跟r,w,+等组合使用;

文件的读取

read() # 直接读取文件所有内容;
readline() # 每次读取文件一行内容,返回类型为字符串;
readlines() # 读取文件所有内容,以列表形式返回;
xreadlines() # 类似生成器,文件内容不直接以列表方式返回;

文件的写入

write(“str”) # 将字符串写入文件
writelines(“[“hello\n”,”world\n”]”) # 将序列的每个元素写入文件;

文件的其它操作

f.seek(偏移量,选项)
# 偏移量,如果为正数,代表向右偏移;如果为负数,代表向左偏移;
# 选项,如果为0,指针指向文件开始;
如果为1,指针指向当前位置;
如果为2,指针指向文件末尾;
f.flush() # 提交对文件的修改;

文件的几个注意点:

  • 文件对象是可迭代数据类型,可以通过for遍历文件的内容;
  • with open(“filename”) as f:通过这种方法来避免用户忘记关闭文件的问题;

练习题:
1. 显示文件的所有行,但忽略以#开头的行;
2. 逐页显示文本文件的程序,用户输入一个文件名,每次默认显示行数为10行,给用户一个选项,”是否继续?(Y|N)”

模块与包的管理

模块

  • 模块实质上就是一个以.py结尾的文件,可以被其他py文件调用;
  • 导入模块时,会去python的默认搜索路径中寻找;
  • python的默认搜索路径sys.path,
  • 添加自定义的搜索路径时,sys.path是一个列表,sys.apth.append(“path”);
    - sys.path.append(“/home/kiosk/1-Pythonv3/day08/code”)
    - sys.path.insert(0,’/home/kiosk’)
  • 导入一个模块的实质是将模块的文件重新运行一次;
  • 导入模块的方法:
    import module1,module2
    from 模块名 import 函数名
    from 模块名 import 函数名 as 函数别名
    import 模块名 as 函数别名

  • 导入一个包的实质是运行包里面的init.py文件;
  • 导入包的方法:
    import 包名.模块名
    from 包名 import 模块名
    import 包名(注意init.py函数的内容)

模块分类:

- 内置模块(os,sys,time)
- 自定义模块
- 第三方模块

常用的内置模块

os,sys,time,datetime,json/pickle,shutil,random

1. 用户与身体信息管理模块 用户信息管理: 注册登录:支持手机号 / 邮箱注册,密码加密存储,提供第三方快捷登录(模拟) 个人资料:记录基本信息(姓名、年龄、性别、身高、体重、职业) 健康目标:用户设置目标(如 “减重 5kg”“增肌”“维持健康”)及期望周期 身体状态跟踪: 体重记录:定期录入体重数据,生成体重变化曲线(折线图) 身体指标:记录 BMI(自动计算)、体脂率(可选)、基础代谢率(根据身高体重估算) 健康状况:用户可填写特殊情况(如糖尿病、过敏食物、素食偏好),系统据此调整推荐 2. 膳食记录与食物数据库模块 食物数据库: 基础信息:包含常见食物(如米饭、鸡蛋、牛肉)的名称、类别(主食 / 肉类 / 蔬菜等)、每份重量 营养成分:记录每 100g 食物的热量(kcal)、蛋白质、脂肪、碳水化合物、维生素、矿物质含量 数据库维护:管理员可添加新食物、更新营养数据,支持按名称 / 类别检索 膳食记录功能: 快速记录:用户选择食物、输入食用量(克 / 份),系统自动计算摄入的营养成分 餐次分类:按早餐 / 午餐 / 晚餐 / 加餐分类记录,支持上传餐食照片(可选) 批量操作:提供常见套餐模板(如 “三明治 + 牛奶”),一键添加到记录 历史记录:按日期查看过往膳食记录,支持编辑 / 删除错误记录 3. 营养分析模块 每日营养摄入分析: 核心指标计算:统计当日摄入的总热量、蛋白质 / 脂肪 / 碳水化合物占比(按每日推荐量对比) 微量营养素分析:检查维生素(如维生素 C、钙、铁)的摄入是否达标 平衡评估:生成 “营养平衡度” 评分(0-100 分),指出摄入过剩或不足的营养素 趋势分析: 周 / 月营养趋势:用折线图展示近 7 天 / 30 天的热量、三大营养素摄入变化 对比分析:将实际摄入与推荐量对比(如 “蛋白质摄入仅达到推荐量的 70%”) 目标达成率:针对健
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值