zoukankan      html  css  js  c++  java
  • Python-04 基础语法-文件操作

    1 Python文件操作

    文件打开

    f = open("test",encoding="utf-8").read()
    #打开文件读取test文件中的全部内容
    

    注意:该文件要存在

    open()方法的完整写法以及参数说明:

    open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True):
    

    参数解释:

    参数 含义
    file 必需,文件路径(相对或者绝对路径)
    mode 可选,文件打开模式
    buffering 设置缓冲
    encoding 一般使用utf8
    errors 报错级别
    newline 区分换行符
    closefd 传入的file参数类型

    mode参数解释

    mode类型 含义
    r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
    w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
    w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    b 二进制模式
    rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。
    wb 以二进制格式打开一个文件只用于写入。
    a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
    ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

    文件读

    f = open("test","r",encoding="utf-8")# r代表只能读
    #f对象表示一个文件句柄,就是相当于一个指针
    data =f.read();
    print(data)
    

    注意:该文件要存在,不存在则会报错

    f = open("test","r",encoding="utf-8")
    print(f.readlines())
    # 读取文件成为一个列表,每行作为一个元素
    

    文件写

    ​ 在对文件进行写的时候,如果写入的文件不存在,那么就会自动创建该新文件.

    f = open("test2","w",encoding="utf-8")
    f.write("我喜欢你")
    #注意,此时不能够读取文件,调用read()方法会报错
    

    文件读写

    #打开一个文件用于读写。文件指针将会放在文件的开头。
    f = open("test","r+",encoding="utf-8")
    print(f.readline())
    f.write("哈哈哈")
    #查看文件,可以看到哈哈哈被写进文件
    

    文件写读(不常用)

    ​ 文件写读模式:如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

    f = open("test2","w+",encoding="utf-8")
    f.write("哈哈哈")
    

    文件追加

    ​ 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

    f = open("test2","a+",encoding="utf-8")
    f.write("ppp")
    f.flush()#刷入硬盘
    

    二进制文件读

    一般二进制文件用于网络传输或者用于读取视频文件

    f = open("test","rb")
    print(f.readline())
    # 结果模式:>>>b'Oh, yesterday when I was young
    '
    

    二进制文件写

    在进行二进制文件写入的时候,如果写入一个字符串,那么需要将字符串转化为字节类型,字符串不转码是无法写入文件的.

    f = open("test","wb")
    f.write("你好".encode())
    

    注意:进行二进制文件读写操作的时候,不要指定encoding,该文件会以二进制进行编码

    文件常用方法

    方法名 含义
    file.tell() 打印指针位置,按字符计数统计
    file.seek(0) 指针回到指定未知,0代表回到文件初始位置
    file.encoding 打印文件的编码
    file.errors 处理异常
    file.name 打印文件名称
    file.seekable 判断光标是否可以移动
    file.flush() 将缓冲区文件刷新到硬盘
    file.close() 关闭文件,关闭后不能读写
    file.read([size]) 从文件读取指定的字节数,如果未给定或为负则读取所有。
    file.readline([size]) 读取整行
    file.write(str) 将字符串写入文件,返回的是写入的字符长度。
    file.writelines(list) 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。

    进度条打印

    使用flush缓存实时刷新

    import  sys,time
    
    #打印进度条
    for i in range(10):
        sys.stdout.write("#")
        sys.stdout.flush()
        time.sleep(0.5)
    

    打印文件指定行

    小文件操作

    for index,line in enumerate(f.readlines()):
    		prin(line.strip())
    		if index==5:
    			print("----")
    			continue
    

    大文件操作

    #迭代器、边读取边写入,缓冲区保留一行
    		count=0
    		for line in f:
    			if count==9:
    				print(line)
    				count+=1
    				continue
    			print(line)
    
  • 相关阅读:
    安装rocketmq并配置管理界面
    centos7搭建xl2tpd
    搭建fastfds+nginx
    申请SSL域名证书
    nginx返回状态码
    搭建v/2/ray和sserver
    第十一周课程总结
    第八周课程总结
    实验报告七&&课程总结
    第八周课程报告&&实验报告六
  • 原文地址:https://www.cnblogs.com/liqbk/p/15149426.html
Copyright © 2011-2022 走看看