zoukankan      html  css  js  c++  java
  • Python 文件操作、异常

    windows默认是gbk编码,又称cp936,汉字占2个字节。

    utf-8被称为万国码,这个编码下,汉字占3个字节。

    ASCII也是一种编码。

    一、文件操作

    最基本的文件打开:

    f = open("a.txt","w")
    # f 文件流、输入输出流
    # "r"模式,没有该文件会报错
    # "w"模式,会清空之前的内容,无文件会新建

    (一).文件的打开模式:

    r 只读模式,文件不存在时会报错。

    w 写入模式,文件存在会清空之前的内容,文件不存在则会新建文件。

    x 写入模式,文件存在会报错,文件不存在则会新建文件。

    a 追加写入模式,不会清空之前的内容,直接将写入的内容添加到后面。

    b 以二进制模式读写文件,wb rb ab。

    + 可读写模式,r+ w+ x+ a+,这几种模式还遵循了r w x a的基本原则。

    (二).文件的读取:

    f.read() 全部读出来。读完后,光标在文件最后了,再运行一次因为后面没有数据了(空值了)就会返回空值。

    f.readline() 只读一行,读完后光标停在读到的那一行最后。

    f.readlines() 全部读取,将每一行作为list中的元素包装进list,返回list

    小技巧:len(f.redlines())可以看出有几行。

    (三).文件的写入:(注:写入如需换行需要自己把" "写进去)

    f.write() 把内容以字符串的形式通过write()方法写入文件中。

    需要紧接f.flush()方法,因为文件是运行在内存中,需要冲刷一下,才会从缓存写入磁盘。类似于“保存”。

    f.writelines()小括号中需要是列表,列表中的内容由字符串元素组成。如:f.writelines(["111","222"])

    (四).文件关闭:f.close()

    (五).查看信息:(不是方法啊!是属性!)

    f.closed 返回一个布尔值,查看文件是否已关闭。

    f.mode 返回文件打开的模式。

    f.name 返回文件名。

    (六).光标位置:

    f.seek(0,0) 第一个参数:偏移量,往后偏移。第二个参数:起始位置。(注意光标的位置)

    f.tell() 返回光标的位置。

    (七).with open:

    用with open方式打开的文件,里面的语句执行完后会自动关闭文件。无需写flush()了。

    with open("a.txt", "a") as f:
        f.read()

    二、异常

    一旦遇到报错(异常),程序就崩溃终止了,用户体验相当不好。所以,捕获异常非常必要,把可能会报错的代码,包装到 try...except 块中。

    尽量避免写BaseException,所有异常的祖宗。

    else:正常结束才执行。

    finally:无论如何都会执行,必定会执行。比如:操作一个文件输入输出时出错了,弹药保护已有的内容,就把关不语句放进finally块中。finally块中一般不写逻辑语句。

    raise:自己手动抛出异常。

    python3的官方帮助文档可以查看内建异常:

  • 相关阅读:
    set与map
    统计一个字符串中出现了多少个不同的字符
    求序列中所有不同的连续子串的数量
    79、idea IDE Eval Reset
    78、idea控制台报 java: 无效的目标发行版: 14
    16、docker安装minio
    77、idea中添加maven项目右侧无maven
    76、mysql5.7安装教程
    74、js向上递归
    72、解决IntelliJIDEA没有Spring Initializr
  • 原文地址:https://www.cnblogs.com/xuanlv-0413/p/9276240.html
Copyright © 2011-2022 走看看