美文网首页
文件读写

文件读写

作者: 码上版码 | 来源:发表于2020-10-05 19:13 被阅读0次

    本节大纲

    文件的打开方式

    文件内容读取

    文件内容写入

    文件扩展用法

    文件的打开方式

    init:初始化配置文件

    conf:配置文件

    csv:参数化文件

    yaml:用例文件

    通过代码打开(文件在内存中打开,肉眼看不到)

    文件的读写通过文件操作对象进行

    Python2 file ------- python3 textIOWrapper

    第一步:打开文件

    内置函数open 打开文件,获取文件操作对象

    # 绝对路径
    fileDir = 'G:/a.txt'
    fileDir = 'G:\\a.txt'  # 反斜杠不许使用两个,否则找不到路径
    fileDir = r'G:\a.txt'  # r取消转义
    # 相对路径使用./表示  当前路径:./a.txt
    file_object = open(file_name,mode='r')  # file_name路径+文件名+后缀名,mode='r'可缺省参数
    
    # 2- 文件读写
    fileDir = r'/Users/liying/Desktop/a.txt'  # r取消转义
    file_object = open(fileDir,mode='r')  # file_object接收open函数在程序运行之后在缓存里面开辟一个空间存放文件对象,文件对象名称file_object
    """
    如果文件不存就报错:FileNotFoundError: [Errno 2] No such file or directory: 'G:\\a.txt'
    排除问题:
    到该文件路径查看是否存在该文件
    该文件后缀名是否正确
    """
    # print(file_object)  # 查看文件类型
    #print(file_object.read())  # read(不填参数全部读取,写参数就读取指定个数)
    print(file_object.read(2))  # 读取2个长度
    # 3- 文件指针
    print(file_object.tell())  # 获取文件指针
    

    文件内容读取

    # 文件读写
    fileDir = r'/Users/liying/Desktop/a.txt'  # r取消转义
    file_object = open(fileDir,mode='r')  # file_object接收open函数在程序运行之后在缓存里面开辟一个空间存放文件对象,文件对象名称file_object
    """
    如果文件不存就报错:FileNotFoundError: [Errno 2] No such file or directory: 'G:\\a.txt'
    排除问题:
    到该文件路径查看是否存在该文件
    该文件后缀名是否正确
    """
    print(file_object)  # 查看文件类型
    print(file_object.read())  # read(不填参数全部读取,写参数就读取指定个数)
    print(file_object.read(2))  # 读取2个长度
    
    # 文件指针
    print("操作前---->",file_object.tell())  # 获取文件指针
    print(file_object.read(2))  # 读取2个长度
    print("操作后---->",file_object.tell())  # 获取文件指针
    # seek光标移动
    file_object.seek(1,0)  # seek(位置下标,模式:默认为0模式,0模式:永远从0开始算起)
    print('seek--->',file_object.tell())
    
    """
    windows 文件中换行是 \r\n -- 2个长度
    Mac linux --- 文件中换行 \n -- 一个长度
    模式0:从开始位置计算 -- 绝对位置 -- r -- 读取到是字符串
    模式1:从当前位置计算 -- 相对位置 -- ‘rb’-- 读取到是byte
    模式2:从最后位置计算 -- ‘rb’ -- 读取到是byte
    r:一般处理文本文档,log ini txt cnf 返回值是字符传
    rb:音频 视频 图片 pcap 以二进制读取 保存byte,如果获取byte字节的内容,就可以使用rb模式读
    
    """
    # 文件读取一行
    print(file_object.readline())
    # 文件读取多行,读取到是列表--列表就可以通过下标获取指定行
    print(file_object.readlines())
    print(file_object.readlines()[1])  # 获取下标为1的一行
    
    # 如果文件中多行数据读取存在换行符,使用splitlines()切割换行符
    res = file_object.read().splitlines()
    print(res)
    file_object.close()  # 关闭文件
    
    

    文件内容写入

    """
    写模式-w
    为了写文件而打开文件,如果文件已存在则其内容会被清空,如果文件不存在,则新建一个文件
    """
    fileDir = r'/Users/liying/Desktop/a.txt'  # r取消转义
    file_object = open(fileDir,'w')
    file_object.write('abcedefgyi')
    file_object.flush()  # 刷新,会保存文件内容,刷新之后可以继续写
    file_object.close()  # 关闭,会保存文件内容,关闭之后不可写
    
    """
    追加模式 a
    为了在文件末尾追加内容而打开文件
    如果文件存在,文件指针在文件的结尾
    如果文件不存在,则创建一个文件
    文件内容追加:
    123456789
    ABCDEFG
    """
    fileDir = r'/Users/liying/Desktop/a.txt'  # r取消转义
    file_object = open(fileDir,'a')
    file_object.write('\n123456789 \nABCDEFG')
    file_object.flush()
    file_object.close()
    

    文件扩展用法

    r+

    为了读取并且写文件而打开文件。如果文件不存在,就报错。文件指针在文件开头。

    w+

    为了读取并且写文件而打开文件。如果文件不存在,就创建一个文件。文件指针在文件开头。如果文件已存在,文件内容将被清空

    a+

    为了读取并且写文件而打开文件。如果文件不存在,就创建一个文件。文件指针在文件结尾。很多OS上写操作永远在文件结尾进行,不管是否用了seek

    fileDir1 = r'/Users/liying/Desktop/a.txt'  # r取消转义
    fileDir2 = r'/Users/liying/Desktop/b.txt'  # r取消转义
    
    with open(fileDir1) as fo1,open(fileDir2) as fo2:  # with open:1,可以操作多个文件;2,可以省略close; file_object=fo
        pass
    

    相关文章

      网友评论

          本文标题:文件读写

          本文链接:https://www.haomeiwen.com/subject/vabauktx.html