• 文件读写


    1、操作文件的函数/方法

    • Python 中要操作文件需要记住 1 个函数和 3 个方法

    • open 函数负责打开文件,并且返回文件对象
    • read/write/close 三个方法都需要通过 文件对象 来调用

    read 方法 —— 读取文件

    • open 函数的第一个参数是要打开的文件名(文件名区分大小写)
      • 如果文件 存在,返回 文件操作对象
      • 如果文件 不存在,会 抛出异常
    • read 方法可以一次性 读入返回 文件的 所有内容
    • close 方法负责 关闭文件
      • 如果 忘记关闭文件会造成系统资源消耗,而且会影响到后续对文件的访问
    • 注意read 方法执行后,会把 文件指针 移动到 文件的末尾
    # 1. 打开 - 文件名需要注意大小写
    file = open("README")
    
    # 2. 读取
    text = file.read()
    print(text)
    
    # 3. 关闭
    file.close()

    提示

    • 在开发中,通常会先编写 打开关闭 的代码,再编写中间针对文件的 读/写 操作!

    文件指针(知道)

    • 文件指针 标记 从哪个位置开始读取数据
    • 第一次打开 文件时,通常 文件指针会指向文件的开始位置
    • 当执行了 read 方法后,文件指针 会移动到 读取内容的末尾
      • 默认情况下会移动到 文件末尾

    思考

    • 如果执行了一次 read 方法,读取了所有内容,那么再次调用 read 方法,还能够获得到内容吗?

    答案

    • 不能
    • 第一次读取之后,文件指针移动到了文件末尾,再次调用不会读取到任何的内容

     打开文件的方式

    • open 函数默认以 只读方式 打开文件,并且返回文件对象

    语法如下:

    f = open("文件名", "访问方式")

    提示

    • 频繁的移动文件指针,会影响文件的读写效率,开发中更多的时候会以 只读只写 的方式来操作文件

    写入文件示例

    # 打开文件
    f = open("README", "w")
    
    f.write("hello python!
    ")
    f.write("今天天气真好")
    
    # 关闭文件
    f.close()

    按行读取文件内容

    • read 方法默认会把文件的 所有内容 一次性读取到内存
    • 如果文件太大,对内存的占用会非常严重

    readline 方法

    • readline 方法可以一次读取一行内容
    • 方法执行后,会把 文件指针 移动到下一行,准备再次读取

    读取大文件的正确姿势

    # 打开文件
    file = open("README")
    
    while True:
        # 读取一行内容
        text = file.readline()
    
        # 判断是否读到内容
        if not text:
            break
    
        # 每读取一行的末尾已经有了一个 `
    `
        print(text, end="")
    
    # 关闭文件
    file.close()
     fr=a.read()  #一次读取文件内所有行内容
    
     fr1=b.readline()  #每次读取文件一行,知道全部读完
    
     fr2=c.readlines()  #读取文件内全部内容

    2、文件/目录的常用管理操作 

    os.path.join() 

    输入:字符串

    返回:该系统上的正确的文件路径格式

    import os
    >>>os.path.join('usr','bin','spam')
    'usr\bin\spam'

    文件夹路径操作

    os.getcwd() :获取当前工作目录

    os.chdir(path) :改变当前工作目录

    .:当前目录    ..:当前目录的父目录

    os.makedirs(path):创建新文件夹

    os.path.abspath(path):将返回参数的绝对路径的字符串。

    os.path.isabs(path):如果参数是一个绝对路径,就返回 True,如果参数是
              一个相对路径,就返回 False

    os.path.relpath(path, start):将返回从 start 路径到 path 的相对路径的字符串。
                  如果没有提供 start,就使用当前工作目录作为开始路径

    查看文件大小和文件夹内容
    os.path.getsize(path):将返回 path 参数中文件的字节数。

    os.listdir(path)将返回文件名字符串的列表

    检查路径有效性

    如果 path 参数所指的文件或文件夹存在, 调用 os.path.exists(path)将返回 True否则返回 False
    如果 path 参数存在,并且是一个文件,调用 os.path.isfile(path)将返回 True否则返回 False
    如果 path 参数存在,并且是一个文件夹, 调用 os.path.isdir(path)将返回 True否则返回 False

    请注意, write()方法不会像 print()函数那样,在字符串的末尾自动添加换行字符。必须自己添加该字符。

     

     

  • 相关阅读:
    腾讯ios内部视频,什么垃圾视频
    项目中学习ReactiveCocoa的使用方法
    Mac 裁剪mp3
    AFN使用etag进行网络缓存
    Mac 高效 软件
    presentedViewController 和 presentingViewController 以及 dismissViewControllerAnimated 的使用
    Objective-C: NSFileManager 的使用
    UIButton的imageEdgeInsets 和 titleEdgeInsets
    Objective-C :Category
    Objective-C中的@property
  • 原文地址:https://www.cnblogs.com/long5683/p/10120916.html
Copyright © 2020-2023  润新知