• python 文件操作


    f=open('test.txt','w',encoding='utf8')
    f.write('hello
    ')
    f.close()
    f=open('test.txt','a')
    f.write('2hello')
    f.close()
    f=open('test.txt','r')
    print(f.read(1))
    print(f.readline())#读到回车,再加上print的回车,一共两个回车
    print(f.read())#由于读光标的原因,它不会重头再read
    f.close()
    h
    ello
    
    2hello
    
    f=open('test.txt','r',encoding='utf-8')
    for i in f.readlines():#f.readlines一行一行读取的集合
        print(i.strip())#去掉每行的回车,否则会与print自带的回车重复,换两行
    f.close()

     以上方法不常用

    f=open('1.txt','r',encoding='utf8')
    for i in f:
        print(i.strip())  #常用
    f.close()
    f=open('1.txt','r',encoding='utf8')
    print(f.tell())#找光标的位置
    print(f.read(2))#一个中文占三个字符,光标的位置走6
    print(f.tell())
    f.seek(3)#将光标移到第一个中文后,写不是3的倍数读取中文时会报错
    print(f.read(3))
    f.close()
    0
    君不
    6
    不见,
    

     报错:

     flush的作用:

    import sys,time
    #下面会一次性出现30个*,因为是写在缓冲区的,写好后一次性显示出来
    for i in range(30):
        sys.stdout.write("*")
        time.sleep(0.2)
    #下面类似进度条的效果,因为flush能将缓冲区的东西马上显示出来
    for i in range(30):
        sys.stdout.write("*")
        sys.stdout.flush()
        time.sleep(0.2)
    #以上sys.stdout可以使用print('*',end='',flush='True')替换

     truncate截断方法:

    f=open('1.txt','w',encoding='utf8')
    f.write('helloworld')
    f.truncate(5)#只保留前5个,截断,文件中显示hello
    f.close()

     文件模式:

    r+:读写模式,读正常,写的时候在最后写,但写了之后光标移动到最后,想要再读需要移动光标

    w+:写读模式,写在最开始写,会覆盖原来的内容,想要读的时候要移动光标,基本上不用

    a+:光标一开始在最后,读写都是在最后,不会覆盖

    文件拷贝以及修改:

    number=0
    f1=open('1.txt','r',encoding='utf8')
    f2=open('2.txt','w',encoding='utf8')
    for line in f1:
        number+=1
        if number==2:
            f2.write(''.join([line.strip(),' I like this sentence
    ']))
        else:
            f2.write(line)
    f1.close()
    f2.close()

     以下代码能实现同样功能:(用 with 同时管理多个文件对象,with a as b 相当于 b=a)

    with open('1.txt','r',encoding='utf8') as f1,open('2.txt','w',encoding='utf8')as f2:
        for line in f1.readlines():
            f2.write(line)
    随便用
  • 相关阅读:
    小程序 订阅消息功能实现 wx.requestSubscribeMessage
    Azure API Management (2) API Managment 保护内网服务,且通过JWT验证
    Azure Firewall (1) Azure虚拟桌面结合Azure防火墙设置访问白名单
    一文详解脏读、不可重复读、幻读
    SpringBoot引入第三方jar的Bean的三种方式
    单例模式,真不简单
    一文详解MySQL的锁机制
    高并发下秒杀商品,必须知道的9个细节
    MySQL记录锁、间隙锁、临键锁小案例演示
    Git五个常见问题及解决方法
  • 原文地址:https://www.cnblogs.com/pqhuang/p/11270494.html
Copyright © 2020-2023  润新知