zoukankan      html  css  js  c++  java
  • python学习笔记(十六)之文件

    打开文件用open函数

    open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
        Open file and return a stream.  Raise IOError upon failure.

    重点关注两个参数:

    1. file:要打开的文件的路径,可以绝对路径或相对路径
    2. mode:文件打开模式
    打开模式 执行操作
    ‘r’ 只读(默认模式)
    'w' 只写,会覆盖已存在的文件
    'x' 如果文件已存在,用此模式打开将引发异常
    'a' 追加模式
    'b' 二进制模式
    't' 文本模式(默认情况)
    '+' 可读写模式(可添加到其他模式中使用)
    'u' 通用换行符支持

     open函数返回一个文件对象,常用的文件对象方法有:

    文件对象方法 执行操作
    f.close() 关闭文件
    f.read(size = -1) 读取size个字符,未给定size或size未负,则读取所有字符
    f.readline() 按行读取
    f.write(str) 将str写入文件
    f.writelines(seq) 向文件写入字符串序列seq,seq应是一个返回字符串的可迭代对象
    f.seek(offset, from) 移动文件指针,从from(0代表文件头,1代表当前位置,2代表文件尾)偏移offser字节
    f.tell() 返回当前文件指针位置

    打开文件,默认情况是只读模式'r'和文本模式't'

    >>> f = open('./test.txt')

    读取文件,用read()方法,未指定size,则读取整个文件。

    >>> f.read()
    '江雪
    唐 柳宗元
    千山鸟飞绝,
    万径人踪灭。
    孤舟蓑笠翁,
    独钓寒江雪。'

    读取文件后,文件指针指向文件尾,可以使用seek重新设置偏移量

    >>> f.tell()
    101
    >>> f.seek(0,0)
    0
    >>> f.tell()
    0

    或者使用list()将文件转化为列表,或用for循环迭代读取。

    >>> for i in f:
    ...     print(i)
    ... 
    江雪
    
    唐 柳宗元
    
    千山鸟飞绝,
    
    万径人踪灭。
    
    孤舟蓑笠翁,
    
    独钓寒江雪。
    >>> lines = list(f)
    >>> lines
    ['江雪
    ', '唐 柳宗元
    ', '千山鸟飞绝,
    ', '万径人踪灭。
    ', '孤舟蓑笠翁,
    ', '独钓寒江雪。']
    >>> for i in lines:
    ...     print(i)
    ... 
    江雪
    
    唐 柳宗元
    
    千山鸟飞绝,
    
    万径人踪灭。
    
    孤舟蓑笠翁,
    
    独钓寒江雪。

    向文件写内容,用write()方法

    >>> f = open('./test.txt', 'w')
    >>> str1 = '''《静夜思》
    ... 
    ...   床前明月光,疑是地上霜。
    ...   举头望明月,低头思故乡。
    ... '''
    >>> f.write(str1)
    37
    >>> f.close()
    >>> f = open('./test.txt')
    >>> for i in f:
    ...     print(i)
    ... 
    《静夜思》
    
    
    
      床前明月光,疑是地上霜。
    
      举头望明月,低头思故乡。
  • 相关阅读:
    1217 实验四 递归下降语法分析程序设计
    1118实验三有限自动机的构造与识别
    11.12评论
    C语言文法
    25-陈庆祥-词法分析
    0909我的看法
    文法定义评价
    1029 语言文法
    1022 词法分析程序
    0909 随说
  • 原文地址:https://www.cnblogs.com/ZGreMount/p/7764528.html
Copyright © 2011-2022 走看看