IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 人生苦短,我学python day13 包和文件操作 -> 正文阅读

[Python知识库]人生苦短,我学python day13 包和文件操作

一、包

1.什么是包
  • 包是python程序中一种专门用来管理py文件的文件夹,这个文件中有一个特殊文件:_init_.py,(项目中的普通文件夹一般用来管理,项目需要的代码文件)
2.怎样使用包中的内容
  • import 包,导入后可以通过’包名.'去使用这个包中

    # 1)直接导入包中的__init__.py文件中定义的所有的全局变量
    import fileManager
    
  • import 包名.模块名,导入后可以通过’包名.模块名.'去使用指定模块中所有的全局变量,

    import fileManager.file
    fileManager.file.read_file()
    fileManager.file.get_file()
    
    # 重命名
    import fileManager.file as file
    file.read_file()
    file.get_file()
    
  • from 包名 import 模块名,倒入指定包中的指定模块,导入后可以通过’模块名‘去使用模块中所有的全局变量

    from fileManager import file
    file.get_file()
    file.read_file()
    
  • from 包名.模块名 import 变量名1,变量名2,…,导入指定包中的指定模块中的指定变量,变量在用的时候直接用

    from fileManager.file import read_file, get_file
    print(get_file())
    print(read_file())
    

二、文件操作

  • 文件操作 -> 操作文件内容

1.内存

  • 运行内存, 硬盘;数据持久化
  • 程序中使用和产生的数据默认都是保存在运行内存中的,当程序结束后,运行内存中的数据全部会被自动销毁。
  • 如果想要数据在程序结束后不销毁,就需要将数据通过文件存储到硬盘中。
  • 将数据保存到硬盘中,就是数据持久化(注意:数据不能直接放到硬盘中,必须要通过文件)
  • 编程的时候常见的文件类型:txt、json、plist、数据库
2.文件操作
  • 基本步骤:打开文件 -> 操作文件(读操作、写操作) -> 关闭文件
  • 打开文件: open(file, mode=‘r’, buffering=None, encoding=None, errors=None, newline=None, closefd=True)、
    • file:指的是需要打开的文件的路径,绝对路径:文件在计算机中的全路径;
      ? 相对路径:用.表示当前目录;用…表示当前目录的上层目录;…;…
    • mode:决定文件的打开方式(决定打开文件之后支持的操作是读还是写;决定操作的数据对象是字符串还是二进制)
      • 决定读写方式的值:r、w、a、+
      • 决定操作的数据类型:t(默认值)、b
      • 打开文件的时候mode必须在这两组值中每一组选一个,如果第二组的值不选表示选的t
        • ‘r’ - open for reading (default) 只读,
        • ‘w’ - open for writing, truncating the file first 只写:打开后会删除原文件的内容
        • ‘x’ - create a new file and open it for writing
        • ‘a’ - open for writing, appending to the end of the file if it exists 只写:会将新的内容添加到原文件内容的后面。
        • ‘b’ - binary mode 打开的文件中的内容是二进制类型bytes
        • ‘t’ - text mode (default) 打开文件之后,读写的文件的格式是字符串,t表示操作对象。
        • ‘+’ - open a disk file for updating (reading and writing)
        • ‘U’ - universal newline mode (deprecated)
    • encoding - 文本文件编码方式,一般赋值为’utf-8‘
      • 注意:读和写的编码方式不一样
        ? 只有文本文件在以t的形式打开的时候才能设置encoding
2.路径
  • 绝对路径

    open(r'D:\文件\语言基础\作业\day12 作业.md')
    
  • 相对路径

    open('./files/test.txt')
    open('../day13 包和文件操作/files/test.txt')
    
3.打开方式
  • f = open('./files/test.txt', 'rt')
    result = f.read()
    # f.write('abc')      # 报错:io.UnsupportedOperation: not writable
    print(type(result))     # <class 'str'>
    
  • f = open('./files/test.txt', 'rb')
    result = f.read()
    print(type(result))     # <class 'bytes'>
    
  • f = open('./files/test.txt', 'r')
    result = f.read()
    print(type(result))     # <class 'str'>
    
  • f = open('./files/test.txt', 'at')
    # f.read()    # io.UnsupportedOperation: not readable
    f.write('abc')
    
  • f = open('./files/test.txt', 'ab')
    # f.write('abc')      # TypeError: a bytes-like object is required, not 'str'
    f.write(bytes('abc', encoding='utf-8'))
    
  • # 打开一个文件并将'abc'写入文件
    f = open('./files/test.txt', 'wt')
    f.write('abc')
    

三、文件的读写

1.打开文件
  • 以读的形式打开一个不存在的文件,会报错!

    f = open('files/test.txt')
    
  • 以写的形式打开一个不存在的文件不会报错,并且会自动创建不存在的文件

    f = open('files/aaa.txt', 'a')
    
2.关闭文件
  • 文件对象.close()

  • 注意:文件关闭后不能再对文件进行操作

    f = open('./files/aaa.txt')
    f.close()
    f.read()    # ValueError: I/O operation on closed file.
    
  • 自动关闭文件的写法

  • with open() as 文件对象:
    ? 文件作用域

    with open('./files/aaa.txt') as f:
        f.read()
    # f.read()        # ValueError: I/O operation on closed file.
    
        f.seek(0)       # 将读写位置移动到文件开头
        result = f.read()
        print('第二次读\n', result)     # 无结果,加了seek之后就有结果:abc
    
3.操作文件
  • 读操作

    • 二进制文件的读写
    with open('./files/test.txt', 'rb') as f:
        result = f.read()
    
    • 文件对象.readline() - 读一行(从读写位置,读到一行结束);只能用于文本文件的读操作
    with open('files/test.txt', encoding='utf-8') as f:
        result1 = f.readline()
        print(result1)          # abc
        result2 = f.readline()
        print(result2)          # 第二行
        result3 = f.read()
        print(result3)
    
    • 练习:使用readline将文件中的内容一行一行的读,读完为止
    with open('files/test.txt', encoding='utf-8') as f:
        # result = True
        while True:
            result = f.readline()
            if not result:
                break
            print(result)
    
  • 写操作

    • 文件对象.write(数据)

    • 在文件最后追加新的内容

      with open('files/test.txt', 'at', encoding='utf-8') as f:
          f.write('\n======================')
      在文件最开头添加新的内容
      with open('files/test.txt', encoding='utf-8') as f:
          result = f.read()
          print(result)
      
    • with open('files/test.txt', 'w', encoding='utf-8') as f:
          # 在文件开头添加一行内容
          result = '============\n' + result
          f.write(result)
      
          # 将原文件中的’据‘修改成’bed‘
          result = result.replace('据', 'bed')
          f.write(result)
      
    • 练习:删除原文第3行的删掉

      with open('files/test.txt', encoding='utf-8') as f:
          result = f.readlines()
          # if len(result) >= 3:
          #     del result[2]
          # result = ''.join(result)
      
      with open('files/test.txt', 'w', encoding='utf-8') as f:
          result = ''.join(result[:2] + result[3:])
          f.write(result)
          print(f.write(result))
      
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-09 11:42:11  更:2021-09-09 11:43:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 14:06:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码