Day13-包和文件操作

Day13-包和文件操作

01-包的使用

1.什么是包

包含__init__.py文件的文件夹就是包

包用来对py文件(模块)进行分类或者封装

2.怎么使用包中的模块

  1. import 包名.模块名

    包名.模块名.变量

  2. import 包名.模块名 as 新名

    对 '包名.模块名' 进行重名命,命名通过 '新名.变量' 的方式使用变量

  3. from 包名 import 模块名1,模块名2,...

    模块名.变量

  4. from 包名 import 模块名1 as 新名,模块名2,...

  5. from 包名.模块名 import 变量名1, 变量名2, 变量名3,...

3.定制包的__init__.py文件

不管用什么样的方式导入包或者包中的内容的时候,系统都会先去执行__init__.py文件

# __init__.py 文件
# 情况1
# import fileManager.jsonFile as jsonFile
# import fileManager.bytesFile as bytesFile

# 情况2:
# from fileManager import jsonFile, bytesFile
# 
# j_func1 = jsonFile.j_func1
# b_func1 = bytesFile.b_func1


# 情况3:
# def read_file():
#     print('读文件')
# 
# 
# print('======init=======')
# 情况1
# import fileManager
# fileManager.jsonFile
# fileManager.bytesFile

# 情况2
# import fileManager
# fileManager.j_func1()

# from fileManager import j_func1
# j_func1()

# 情况3
# import fileManager
# fileManager.read_file()

# from fileManager import read_file
# read_file()

# from test import test1

02-文件操作

1.数据持久化

  1. 计算机存储数据

    程序中的数据默认情况下都是保存在运行内存中,保存在运行内存中的数据在程序结束后会自动销毁。

    保存在磁盘中的数据,除非手动删除或者磁盘损坏,数据会一直在。

  2. 持久化

    将程序中的数据保存入文件中。

2.文件操作

操作文件的基本步骤:

打开文件 -> 读、写操作 -> 关闭文件

3.python实现文件操作

  1. 打开

    open(file,mode='r',...,encoding=None) - 以指定方式打开指定文件

    file - 字符串,需要打开的文件路径

    • 相对路径 - 文件在计算机中全路径
    • 绝对路径 - 用.来代替文件全路径的部分,只写部分路径
      • . - 表示当前目录
      • .. - 表示当前目录的上层目录
      • ...

    mode - 字符串,打开方式(决定打开文件后文件能支持的操作;决定读写数据的类型)

    • 'r' - 表示只读(默认)

    • 'w' - 表示只写,打开的时候会先清空文件

    • 'a' - 表示只写,打开的时候会保留原文件内容

    • 't' - 表示文本数据,对应str类型(默认)

    • 'b' - 表示二进制数据,对应bytes类型

      'rt'/'tr'/'r'
      'wt'/'tw'/'w'
      'at'/'ta'/'a'
      'rb'/'br'
      'ab'/'ba'
      'wb'/'bw'  
      
    • 注意

      • 以读的形式打开一个不存在的文件会报错;
        以写的形式打开一个不存在的文件不会报错,并且会自动创建
      • 如果是文本文件打开的时候可以是’b’也可以是’t’;
        如果是非文本文件打开的时候只能带’b’

    encoding - 设置文本文件的编码方式,一般使用utf-8

    • 创建文件和打开文件、读和写对应的编码方式要一致
    • 打开的时候如果带’b’,不能设置encoding
    # 1. file - 文件路径
    # 1)绝对路径
    path1 = '/Users/yuting/授课/Python2004/01语言基础/day13-包和文件操作/files/message.txt'
    path2 = r'E:\python\PyCharm\01、语言基础\day13 - 包文件操作和异常\files\message.txt'
    
    # 2)相对路径
    # .  -  代表文件夹 'day13-包和文件操作'
    path3 = './files/message.txt'
    path4 = 'files/message.txt'
    # .. - 代表文件夹 '01语言基础'
    path5 = '../day13-包和文件操作/files/message.txt'
    
    open(path5)
    
    # 2. mode - 读写方式
    # 1)读
    f = open(path3, 'rb')
    result = f.read()
    # f.write('abc')  # io.UnsupportedOperation: not writable
    print(type(result))    # 'r'/'rt' -> <class 'str'>  'rb' -> <class 'bytes'>
    
    # 2)写
    f = open(path3, 'a')
    # f.read()    # io.UnsupportedOperation: not readable
    f.write('')
    
    f = open(path3, 'w')
    # f.read()   # io.UnsupportedOperation: not readable
    f.write('')
    
    # 3)打开不存在的文件
    # open('./files/test.txt', 'r')    # FileNotFoundError
    # open('./files/test.txt', 'a')     # 不报错,自动创建test.txt文件
    open('./files/test2.txt', 'w')     # 不报错,自动创建test2.txt文件
    
    # 4)打开非文本文件
    f = open('files/luffy4.jpg', 'rb')
    f.read()
    
    
  2. 读写操作

    • 文件对象.read() - 从读写位置开始读到文件结尾(适用于所有文件)

      文件对象.readline() - 从读写位置开始读到一行结尾(只能用于以’t’打开的文本文件)

    • 文件对象.write(数据) - 将指定数据写入文件中(从读写位置开始写)

    • 文件对象.seek() - 将读写位置移动到文件开头(读的方式打开读写位置默认在文件开头,写的方式打开读写位置默认在文件结尾)

03-数据持久化

1.怎么做到数据的持续化

  1. 创建一个文件用来保存需要持续化的数据
  2. 需要这个数据的时候从文件中取获取这个数据
  3. 如果在程序中对这个数据进行修改,需要将最新的数据更新到文件中
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值