文件光标移动 | 数据修改和函数

内容概要

  • 文件内光标的移动
  • 文件内数据的修改
  • 函数

二进制模式读写操作

  • with open(r'a.txt', 'rb') as f2:
    print(f2.read(3).decode('utf8'))
    image

  • with open(r'a.txt', 'r', encoding='utf8') as f1:
    print(f1.read(4))
    image
    read() 括号内可以放数字
    在t模式下表示字符个数
    在b模式下表示字节个数
    英文字符统一使用一个bytes表示
    中文字符统一使用三个bytes表示

文件内光标的使用

  • with open(r'a.txt', 'rb') as f2:
    print(f2.read(3).decode('utf8'))
    print(f2.tell())
    f2.seek(3, 0)
    print(f2.read().decode('utf8'))
    image
    控制文件内光标移动 f.swwk()
    f.seek(offset, whence)
    offset表示位移量
    始终以字节为最小单位
    整数从左往右移动
    负数从右往左移动
    whence表示模式
    0:以文件开头为参考(支持tb两种模式)
    1:只支持b模式,以当前位置为参考
    2:只支持b模式,以文件末尾为参考

文件内容的修改

  • 方式一 覆盖
    with open(r'a.txt', 'r', encoding='utf8') as s:
    a = s.read()
    print(type(a))
    with open(r'a.txt', 'w', encoding='utf8') as s1:
    q = a.replace('村头一枝花', '举头望明月')
    s1.write(q)
    image

    image

  • 方式二 新建
    import os

    with open(r'a.txt', 'r', encoding='utf8') as read_f,
    open(r'c2.txt', 'w', encoding='utf8') as write_w:
    for i in read_f:
    write_w.write(i.replace('举头望明月', '锄禾日当午'))
    os.remove('a.txt')
    os.rename('c2.txt', 'a.txt')
    image

函数

  • 函数语法结构
    def 函数名(参数一,参数二):
    函数注释
    函数体代码
    return 返回值

  • 1.def(必须有)
    定义函数的关键字
    2.函数名(必须有)
    函数的名字,相当于变量名
    函数名的命名规范和风格遵循变量名的
    3.参数一,参数二(可选)
    参数有也可以有多个
    表示在使用前满足函数的一些条件
    4.函数注释(可选)
    介绍函数功能,参数使用和其他情况
    5.函数体代码(必须要)
    函数核心的代码逻辑
    6.return返回值(可选)
    使用函数之后反馈给使用者的结果,可有可无

函数的定义与调用

  • 1.函数必须先定义再调用(顺序不能乱)
    2.函数在定义阶段只检测语法不执行代码
    3.函数在调用阶段才会执行函数体代码
    如何调用函数:
    函数名加括号,如果函数在定义阶段有参数则在调用阶段也需要给参数

    函数在定义与调用阶段底层原理:
    1.在内存空间中申请一块空间存储函数体代码
    2.将函数体代码所存在的空间地址绑定给函数名
    3.函数名加括号则会执行函数体代码

函数的分类

  • 1.内置函数
    python解释器自带的(提前定义好了,可以直接使用)

    2.自定义函数
    程序员自己写的
    (1)无参函数
    (2)有参函数
    (3)空函数

    无参函数:在函数定义阶段括号内没有写参数(变量名)
    def s():
    print('嘿嘿嘿')

    s()
    image

    有参函数:在函数定义阶段括号内写了参数(变量名)
    def s(a, b):
    print('哈哈哈')

    s(5,6)
    image

    空函数:函数体代码为空(pass,...)
    虽然空函数本身没有意义,但可以提前规划好编码的思路
    def name():
    pass

    def password():
    pass

    def age():
    pass
    image

image

posted @ 2021-11-12 17:10  一览如画  阅读(113)  评论(0)    收藏  举报