夜间模式暗黑模式
字体
阴影
滤镜
圆角
主题色
Python学习笔记10-文件

文件(P213)

打开文件

f = open('1.txt', 'r+')
  • 函数open位于自动导入的模块IO中, 文件名为第一个参数, 此外还有一个可选参数mode为文件模式
  • mode常见值:
    • 'r': 读取模式(默认值)
    • 'w': 写入模式, 文件不存在时创建, 既有文件内容将被删除
    • 'x': 独占写入模式, 在文件存在时引发FileExistsError
    • 'a': 附加模式
    • 'b': 二进制模式(与其他模式结合使用)
    • 't': 文本模式(默认值, 与其他模式结合使用)
    • '+': 读写模式(与其他模式结合使用)
  • 关键字encodingerror指定文本模式下的编码和错误处理
    • 文本模式读取时将其他行尾换行符'\r''\r\n'替换为'\n', 写入时将'\n'替换为系统默认换行尾符(os.linesep), 如果要禁止转换换行符可以将关键字参数newline设置为空字符串, 如果要指定只将'\r', '\r\n'视为合法的行尾字符, 可将参数指定为相应的字符, 这样读取时不会转换, 但写入时会将'\n'转换为指定的行尾字符

文件的基本方法

  • 在文本模式和二进制模式中, 分别将strbytes类用作数据

  • f.write(string): 将指定的字符串写入到文件既有内容的后面并返回写入的字符数

  • f.close(): 关闭文件

    ​ 要确保文件得以关闭, 可以使用try/finally语句, 并在finally语句中调用close, 或者使用with语句, 到达语句末尾时将自动关闭文件

    with open('1.txt', 'w') as f:
    	f.write('1111')
    
  • f.seek(offset[, whence]): 将当前位置移到offset(偏移量)和whence(默认为0, 代表相对文件开头, 1代表相对当前位置, 2代表相对文件末尾)指定的地方

  • f.tell(): 返回当前位于文件什么位置

  • f.read(): 读取制定个字符或字节并返回, 如果不指定数量, 将返回剩余全部(到达文件尾返回空字符串)

  • readline: 读取一行, 一个可选参数表示最多读取多少字符(到达文件末尾返回空字符串)

  • readlines: 读取所有行, 以列表的形式返回它们

  • writelines: 将字符串列表写入文件, 注意写入时不会自动添加换行符号

管道(P215)

在bash等shell中, 可使用管道(|)将前一个命令的标准输出链接到下一个命令的标准输入:

cat f.txt | python p.py | sort

文件迭代

  • 使用循环读取文件, 当读到末尾时根据函数返回的空字符串结束循环(read()readline())

  • 一次性读入全部(readlines(), read())

  • 迭代大型文件时, 可以使用fileinput进行延迟行迭代(每次只读取需要的部分), 具体见上一章的:

    import fileinput
    for line in fileinput.input('1.txt'):
    	print(line)
    
  • 直接迭代文件(文件是可迭代的)

    for line in open('1.txt'):
    	print(line)
    
暂无评论

发送评论 编辑评论


				
上一篇
下一篇