python基础——3.文件操作&日志处理

发布时间:2022-06-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了python基础——3.文件操作&日志处理脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

一.文件操作 文件句柄: f = oPEn("文件绝对路径或相对路径", mode="r", encoding="utf-8") content = f.read() # 这里进行了一个utf-8到gbk转换? PRint(content) f.close()

# 如果文件隐藏了后缀,则不要添加后缀
# 以什么编码方式存储的文件,就以什么编码方式打开
# 非文字文件存储用bytes
# read()对文件进行了转换, b转换成了str

1.编码方式 utf-8 gbk
2.mode:r,w,a,r+,w+,a+,rb,wb,ab,r+b,w+b,a+b
    # r+会覆盖当前文件指针所偶在位置的字符,如原来文件内容是“hello”,打开后写入”hi“,会干掉he
      不移动光标,新内容读不出来;移动光标新内容能读出来
      在写之前能读旧内容
    # w+与r+不同,w+在打开文件时会将文件清空
      不移动光标,新内容读不出来;移动光标新内容能读出来
      在写之前读不到旧内容,已经被清空
    # a+与r+不同,a+只能写到文件末尾(无论当前文件指针在哪里).r+移动光标后就会覆盖写,a+就不会
      不移动光标,新内容读不出来;移动光标新内容能读出来
      在写之前读不到就内容,因为光标在最尾

3.操作方式 只读 只写 追加 读写 写读
4.open直接打开文件,如果出现异常,则报错,close方法无法关闭
5.用wITh的好处是达到语句末尾时,会自动关闭文件,即便出现异常.
6.with语句实际上是一个非常通用的结构,使用上下文管理器.支持__enter__和__exit__方法
7.__enter__方法不接受任何参数,在进入with语句时调用,其返回值被赋给关键字as后面变量
8.__exit__方法接收三个参数,异常类型,异常对象和异常跟踪.它在离开方法时被调用,如果__exit__返回false,将抑制所有的异常.
9.文件也可用做上下文管理器.他们的方法__enter__返回文件对象本身,而方法__exit__关闭文件
10.with语句作用效果相当于try-except-finally

# 功能详解
    f.read(3)          # 读取前三个字符
    f.seek(3)          # 移动光标,以字节为单位.如果文本是中文,不是3倍数会报错
                       # seek(0)开头;seek(0, 2)结尾
    f.tell()           # 获取光标的位置,按字符计算
    count = f.tell()
    f.seek(count-9)    # 意思是从获取的位置的-3开始
    f.readlines()      # 输出的是列表,每一行是列表中的一个元素
    f.truncate()       # 截取文件,截取几位括号里加几
                       # 方法2:移动光标,然后f.truncate(),光标后边都删除
                       # 注意,需要用到写操作,意味着会删除文件内容
    writeable()        # 是否可写
    readable()         # 是否可读

    r       # 非文字文件用rb打开
    f = open("filename", mode="rb")
    content = f.read()
    f.close()

    w
    对于写,没有文件则创建文件,有文件先清除源文件再写
    f = open("filename", mode="w", encoding="utf-8")
    f.write("123")
    f.close()

    f = open("filename", mode="wb")
    f.write("浮点数".encode("utf-8"))
    f.close()

    f = open("filename", mode="wb", encoding="utf-8")
    f.write("123")
    f.close()               # 这两种方法结果相同,目前用encoding会报错

    a       # a没有读功能,读会报错,a+能读
    f = open("filename", mode="a", encoding="utf-8")
    f.write("123")
    f.close()               # 追加写入

    r+
    f = open("filename", mode="r+", encoding="utf-8")
    print(f.read())
    f.write("123")
    print(f.read())         # 新内容不会读出来
    f.close()

    f = open("filename", mode = "r+b")
    print(f.read())
    f.write("123", encode("utf-8"))

with open("filename", mode="r", encoding="utf-8") as obj:
    with open("filename1", mode="r", encoding="utf-8") as obj1:
        print(obj.read())
# 可以打开多个文件

脚本宝典总结

以上是脚本宝典为你收集整理的python基础——3.文件操作&日志处理全部内容,希望文章能够帮你解决python基础——3.文件操作&日志处理所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。