day13包和文件操作

本文详细介绍了Python中的包使用,包括包的概念、如何导入包中的模块以及定制`__init__.py`文件。同时,文章讲解了文件操作,如数据持久化的重要性,文件的读写步骤以及open()函数的模式和编码设置。通过实例展示了如何通过文件实现数据的保存和读取,以及如何在程序中实现数据的增删和更新。
摘要由CSDN通过智能技术生成

包和文件操作

1.包的使用

1.什么是包
包含__init__.py文件的文件夹就是包
包:用来对模块(py文件)进行分类或者封装
2.怎么使用包中的模块

  1. import 包名.模块名
    包名.模块名.变量
  2. import 包名.模块名 as 新名
    对’包名.模块名’ 进行重命名,命名通过’新名.变量’ 的方式使用变量
  3. from 包名 import 模块名1, 模块名2…
  4. from 包名 import 模块名 as 新名
  5. import 包名.模块名 import 变量
    3.定制包的__init__.py文件
    不管用什么样的方式导入包或者包中的内容的时候,系统都会先去执行__init__.py文件

2.文件操作

1.数据持久化

  1. 计算机存储数据
    程序中的数据默认情况下都是保存在运行内存中,保存在运行内存中的数据在程序结束后会自动销毁
    保存在磁盘中的数据,除非是手动删除或者磁盘损坏,数据会一直存在
  2. 数据持久化的过程
    将程序中的数据通过文件保存在磁盘中,这个过程就是数据持久化的过程
    数据持久化的工具:普通文本文件(.txt)、数据库文件(.sqlite、.db)、json文件、plist文件、csv文件、excel文件等
    2.文件操作(操作文件内容)
    操作文件的基本步骤:打开文件、读写操作、关闭文件
    3.python实现文件操作
    open(file, mode=‘r’,…, encoding=None) - 以指定的方式打开指定的文件并且返回(返回的是文件对象)
    file - 字符串,需要打开的文件路径
    路径:
    绝对路径 - 文件在计算机中的全路径
    相对路径 - 用.来代替文件全路径的部分,只写部分路径
    . - 表示当前目录(当前代码文件所在的目录),可省略不写
    … - 表示当前目录的上层目录
    … - 表示当前目录的上上层目录

mode - 字符串,打开方式(决定打开文件后文件能支持的操作;决定读写数据的类型)
‘r’ - 表示只读(默认)
‘w’ - 表示只写,打开之后会清空原文件
‘a’ - 表示只写,打开之后会保留原文件内容

​ ‘t’ - 表示文本数据,对应str类型(默认)

​ ‘b’ - 表示二进制数据,对应bytes类型
​ ‘rt’/‘tr’/‘r’
​ ‘wt’/‘tw’/‘w’
​ ‘wb’/‘tw’
​ 注意:以读的形式打开一个不存在的文件会报错;
​ 以写的形式打开一个不存在的文件不会报错,并且会自动创建
​ 如果是文本文件,打开的时候可以是b也可以是t
​ 如果是非文本文件,打开的时候只能是’b’

encoding - 设置文本文件的编码方式,一般使用’utf-8’
注意:
1.创建文件和打开文件、读和写对应的编码方式要一致
2.打开的时候如果带’b’,不能设置encoding
1).读
文件对象.read() - 从读写位置开始读到文件结尾
文件对象.seek(0) - 将读写位置移动到文件开头(读的方式打开读写默认位置在文件开头,写的方式打开读写位置默认在文件结尾)
2).写
文件对象.write(数据) - 将指定数据写入文件中(从读写开始写)
3).文件关闭
文件对象.close()
注意:文件关闭后不能再进行读写操作

3.数据持久化

1.怎么做到数据持久化
1)创建一个文件用来保存需要持久化的数据
2)需要这个数据的时候从文件中去获取这个数据
3)如果在程序中对这个数据进行修改,需要将最新的数据更新到文件中

f = open('test/count.txt')
num = int(f.read())
num += 1
print(num)
f = open('test/count.txt', 'w')
f.write(str(num))
f.close()

# 练习2:添加学生
# a.每运行一次程序添加一个学生,并且打印已经添加过的所有的学生
# b.每运行一次程序添加一个学生,并且以列表的形式打印已经添加过的所有的学生
# stu1  -> stu1        ['stu1']
# stu2  -> stu1 stu2   ['stu1', 'stu2']
# 小明   -> stu1 stu2 小明   ['stu1', 'stu2', '小明']
name = input('请输入学生名字:')
f = open('test/student.txt')
result = f.read()
all_students = eval(result)
all_students.append(name)
print(all_students)

f = open('test/student.txt', 'w')
f.write(str(all_students))
f.close()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值