python学习笔记7

python学习笔记7

一、python文件操作

  1. 文件内容读取

    # 使用python的内置函数open
    f = open('file_path',encoding='utf-8',mode='r') # file_path是文件所在路径
    content = f.read() # 读取文件的函数方法:read
    print(content)
    f.close()
    """
    open是内置函数,底层调用的是操作系统的接口
    f称为文件句柄。对文件进行任何操作都需要通过文件句柄
    encoding参数:默认操作系统的编码方式
    mode参数:打开文件的方式,r为仅读取
    使用open函数打开文件,操作结束时一定要使用close函数关闭文件。
    """
    # 常见操作报错:
    # UnicodeError:编码解码方式不匹配
    # SyntaxError:文件路径中\出现了转义
    
  2. 文件内容写入

    # mode=w为仅写入
    # 文件不存在则创建文件写入内容
    # 文件存在则先清空文件内容再写入
    f = open('file_path',encoding='utf-8',mode='w') 
    f.write('写入文件的内容')
    f.close()
    
  3. python额外文件操作

    # 相应的有rb和wb两种mode用来读取和写入byte内容
    # 文件操作的追加a,ab,a+,a+b
    # 没有文件就创建文件追加内容,文件存在则在内容后面追加内容
    f = open('file_path',encoding='utf-8',mode='a')
    
  4. 文件操作的其他模式

    # 文件的读写,先读后写
    # 文件不存在就报错
    # 文件存在,可在已有内容后追加写入内容
    f = open('file_path',encoding='utf-8',mode='r+')
    
    # !!!文件读取会从光标(指针)位置开始
    
  5. 文件操作的其他功能

    # 文件操作的三个方向
    # 读取:r,rb,r+,r+b
    # 写入:w,wb,w+,w+b
    # 追加:a,ab,a+,a+b
    # 相应的功能:对文件句柄的操作:
    # read() read(n) readline() readlines() write()
    # tell() 获取光标的位置(单位:字节)
    f = open('file_path',encoding='utf-8',mode='r+')
    print(f.tell) # 0  文件刚打开时默认光标在第一个位置
    f.close()
    
    # seek() 调整光标的位置(字节)
    f = open('file_path',encoding='utf-8',mode='r')
    f.seek(6) # 这时候文件的光标改成了6
    # 文件的操作将从第6个字节的位置开始
    f.close()
    
    # flush() 强制刷新
    f = open('file_path',encoding='utf-8',mode='w')
    f.write('写入的内容') # 写入内容的时候其实文件并未进行保存操作
    f.flush() # 将文件内容保存
    f.close()
    
  6. 打开文件的其他方式

    # 另一种更方便打开文件的方式
    with open('file_path',encoding='utf-8') as f:
        print(f.read())
    #这种方式会在一定时间后自动关闭(不用使用close方法)
    
    # 可以一次性操作多个文件
    with open('file_path0',encoding='utf-8') as f0,\ open('file_path1',encoding='utf-8',mode='w') as f1:
    	print(f0.read())
        f1.write('写入内容')
    # 这里打开文件的操作命令过长,可以使用 \ 换行
    
  7. 文件内容修改

    # 修改步骤
    """
    1.以读取的模式打开源文件
    2.以写入的模式创建一个新文件
    3.将原文件的内容读出来修改成新内容,写入新文件
    4.将原文件删除
    5.将新文件重命名为原文件
    """
    import os
    # 1.以读取的模式打开源文件
    # 2.以写入的模式创建一个新文件
    with open('file_path',encoding='utf-8',mode='r') as f,\
    open('newfile_path',encoding='utf-8',mode='w') as f_1:
        content = f.read()
        # 3.将原文件的内容读出来修改成新内容,写入新文件
        new_content = ... # 这里的操作是对原文件内容content进行修改
        f_1.write(new_content)
    # 4.将原文件删除
    os.remove('file_path')
    # 5.将新文件重命名为原文件
    os.rename('修改内容的文件名','原文件名')
    #这个方法使用了read方法,但是这个方法对于内容过多的文件基本不能用
    
    # 另一种方法
    import os
    # 1.以读取的模式打开源文件
    # 2.以写入的模式创建一个新文件
    with open('file_path',encoding='utf-8',mode='r') as f,\
    open('newfile_path',encoding='utf-8',mode='w') as f_1:
        # 3.将原文件的内容一行一行读出来修改成新内容,写入新文件
        for line in f:
            old_line = line.strip()
        	new_line = ... # 这里的操作是对原文件内容进行修改
        	f_1.write(new_line)
    # 4.将原文件删除
    os.remove('file_path')
    # 5.将新文件重命名为原文件
    os.rename('修改内容的文件名','原文件名')
    
posted @ 2020-03-19 16:53  卡奇欧  阅读(84)  评论(0)    收藏  举报