zoukankan      html  css  js  c++  java
  • python中文件的读和写操作

    一、打开文件

    data = open("yesterday",encoding="utf-8").read()
    # python默认的打字符编码是unicode,处理不了gbk,但是utf—8可以
    
    print(data)
    

    ps:这边的yesterday文件是一首英文歌的歌词

    在打开的时候,一定要转码,否则会乱码:encoding="utf-8"
    在这里插入图片描述
    二、读取前几行
    会用到read( )和readline( )方法

    f = open("yesterday",encoding="utf-8")  # 文件句柄,方法和1类似
    # data = f.read()   # 光标在最后面
    # print(data)
    # f.readline()   # 读取一行,只适合读小文件
    for i in range(5):
        print(f.readline())    # 循环之后读取四行
    

    在这里插入图片描述
    三、读取前几行(优化版)
    用到了迭代器,所以不会像二一样占用太大的内存,最后只会占用一行的内存

    f = open("yesterday",encoding="utf-8")
    # 实现前九行的输入,并且在第九行输入分割线
    count = 0
    for line in f:
        if count == 9:
            print("--------分割线-------")
            count += 1
            continue
        print(line)    # 迭代器!效率最高的循环方式,比2效率高是因为读完一行就删一行
        count +=1
    

    在这里插入图片描述
    四、关于文件的方法
    python不是直接调用所有文件,而是调用操作系统的接口I/O,通过接口来调用文件

    
    # 1.tell()方法:光标的位置
    f = open("yesterday",encoding="utf-8")
    print("1:",f.tell())    # 把指针的位置表示出来,0
    print("2:",f.readline())
    print("3:",f.tell())    # 读完一行字符之后光标的位置
    print("4:",f.readline(3))
    print("5:",f.tell())    # 读完三行字符之后光标的位置
    
    #2.seek()方法: 光标回到第几行
    f.seek(0)
    print("6:",f.tell())   # 光标重新回到了开始
    
    # 3.encoding  # 打印文件的编码类型
    print("7:",f.encoding)
    
    # 4.fileno()  可用于底层操作系统的 I/O接口操作。
    print("8:",f.fileno())
    
    # 5.flush()
    print(f.flush())  # 实时刷新文件内容
    
    

    在这里插入图片描述
    其实在学习python基础的时候,pycharm的联想功能非常重要!

    小福利:

    打开文件的模式有:

    r,只读模式(默认)。
    w,只写模式。【不可读;不存在则创建;存在则删除内容;】
    a,追加模式。【可读; 不存在则创建;存在则只追加内容;】

    “+” 表示可以同时读写某个文件
    r+,可读写文件。【可读;可写;可追加】
    w+,写读
    a+,同a

    "U"表示在读取时,可以将 自动转换成 (与 r 或 r+ 模式同使用)
    rU
    r+U

    "b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)一般是在跨平台的时候需要处理二进制文件,比如Windows到linux;视频文件也需要处理二进制文件

    rb —读,以二进制模式打开,此时不需要即encoding,
    wb—写,此时需要加入encoding
    在这里插入图片描述
    ab

    本人目前在学习python、前端、数据库和linux相关的内容,故打算写一些学习笔记,包括安装软件遇到的一些问题、编程语言的学习。 学习如逆水行舟,你在原地踏步的同时,别人一直在前进!
  • 相关阅读:
    【webrtc】PTCPeerConnection(28)
    windows传文件到linux服务器--- secureCRT PK xftp
    Navicat premium查看数据库表中文注释的两种方式
    Jmeter 5.1实现图片上传接口测试
    查看服务器内存、CPU、网络等占用情况的命令--汇总
    AWS服务器上安全组端口设置和访问的问题
    linux服务器时间乱码问题解决
    连接linux的几款工具 简介
    服务器上build.xml文件乱码解决(亲测有效)
    jmeter通过ant执行时报错 jmeter.log not found
  • 原文地址:https://www.cnblogs.com/souhaite/p/10585612.html
Copyright © 2011-2022 走看看