zoukankan      html  css  js  c++  java
  • python文件操作

    ###  1
    ##******************************
    ##*python文件最基本的操作
    ##*******************************
    f = open("yesterday",'r+',encoding = "utf-8") #打开文件,f叫做文件句柄,包含文件大小等各种信息,可以看做一个对象
    #f = open("yesterday",'a+',encoding = "utf-8") #追加读写模式
    #f = open("yesterday",'rb',encoding = "utf-8") #文件句柄 二进制格式读写文件
    #W+写读模式没什么作用,读写模式有一些作用
    #data = f.read()
    #data2 = f.read()  #文件读取光标移到文件最后,已经读取不到内容了
    #print('________data_____________',data2)
    f.write("昨夜再也不会回来\n")  #还必须选取文件打开模式,读或者写
    f.write("清晨的阳光还会回来\n")
    data = f.read()
    print('________data_____________',data)
    #w打开是创建一个文件,如果有则会删除原有数据重新写
    f.close()
    
    ###  2
    ###########*****************
    ##**判断文件第10行,如果是则输出下划线下面一种是比较low的方法,它需要把文件全部读取到内存里以后再进行判断,
    ##**如果文件较大这种方法并不可靠
    ###########*****************
    for index,line in enumerate(f.readlines()):
        if index == 9:
            print("------------分割线--------------")
            continue
        print(line.strip()) #去掉一行中的换行符
    #f.truncate(500)   #文件500个字符以后都被清空
    
    ###  3
    ###########*****************
    ##**判断文件第10行,如果是则输出下划线下面一种是比较higher的方法,它使用到一个计数器,
    ##**使用时只需要每次将一行读取到内存,并且判断计数器即可
    ###########*****************
    count = 0
    for line in f: #f被看做了一个迭代器
        count += 1
        if count == 10:
            print("-------------------分割线-------------------")
            continue
        print(line)
    
    '''
    f = open("yesterday",'r+',encoding = "utf-8")
    print(f.tell())
    print(f.read(5))
    print(f.tell())   #告诉当前光标的位置
    f.seek(0)
    f.seekable()     #判断文件是否可以移动
    print(f.readline())
    print(f.encoding)  #打印文件编码
    print(f.fileno())  #得到操作系统调度文件时使用到的I/O接口
    print(f.flush())   #将要写入的文件刷新写到硬盘上去
    '''
    
    ###  4
    ########*****************************************
    ##*打印一个进度条
    ##*主要是展示flush的功能
    ########*********************
    import sys,time
    for i in range(50):
        sys.stdout.write("#")
        sys.stdout.flush()     #从缓冲刷新到屏幕
        time.sleep(0.5)        #延迟0.5S
    
    ###  5
    ########*****************************************
    ##*二进制文件读取
    ##*注意区分二进制文件与文本文件操作的区别
    ########*****************************************
    f = open("yesterday",'wb') #二进制没有字符编码格式,一些文件必须以二进制格式打开
    #print(f.readline())
    #print(f.readline())
    f.write("you are the best beautiful girl\n".encode())
    
    ###  6
    ####****************************************
    #*对文件的内容进行修改
    #*先把文件加载到内存里再进行修改
    #*打开一个文件,再写到一个新文件里,读入内存和存入磁盘时同时操作的
    ####*****************************************
    f = open("yesterday",'r',encoding = "utf-8")
    f_new = open("yesterday1.txt",'w',encoding = "utf-8")
    for line in f:
        if "girl" in line:
            line = line.replace("girl","my love")   #找到内容,则将内容给替换掉
        f_new.write(line)
    f.close()
    f_new.close()
    

      

  • 相关阅读:
    Objective-C 资源收藏
    坑爹的高德地图API
    nginx的location root alias指令以及区别
    Java Swing 界面中文乱码问题解决(Idea环境)
    不同的国家/地区与语言缩写代码
    IDEA编译时出现 Information:java: javacTask: 源发行版 1.8 需要目标发行版 1.8
    请重视!请重视!请重视!百度熊掌号之搜索资源平台体验
    php7带来的性能升级
    详解Asp.Net Core 2.1+的视图缓存(响应缓存)
    Xshell5 提示要继续使用此程序,您必须应用最新的更新或使用新版本
  • 原文地址:https://www.cnblogs.com/latencytime/p/10545169.html
Copyright © 2011-2022 走看看