zoukankan      html  css  js  c++  java
  • File操作

    '''
    -a append ,但是不能读
    -r read only
    -w write 会覆盖创建
    '''
    #data = open("bigger",encoding="UTF-8").read()
    f = open("bigger",'a',encoding="UTF-8") #文件句柄,就是文件的内存对象
    data = f.read()
    data2 = f.read() #这个时候的赋值已经读到文件尾了,如果要给data2赋值,需要重新将光标返回
    print(data)
    print("data2",data2)

    #Appen to openfile
    f.write("Python day 3 study! ")
    f.close()

    ##write
    f = open("bigger2",'w',encoding="UTF-8")
    f.write("Python day 3 study! ") #必须要r模式
    f.write("UPUPUP! ")


    ##读前5行
    f = open("bigger",'r',encoding="UTF-8") #文件句柄,就是文件的内存对象
    data = f.read() #这个时候的赋值已经读到文件尾了,如果要给data2赋值,需要重新将光标返回
    for i in range(5):
    print(f.readline())
    f.close()
    f = open("bigger",'r',encoding="UTF-8") #文件句柄,就是文件的内存对象
    for index,line in enumerate(f.readlines()):
    print(index,line.strip())
    
    
    ###高效读文件方式,内存一行行的读
    f = open("bigger",'r',encoding="UTF-8") #文件句柄,就是文件的内存对象
    for line in f:
    print(line)
    f.close()

    seek()
    tell()
    encoding()
    fileno() -- 返回句柄编号
    f.flush() --将缓存刷入硬盘
    f.truncate()

    with open() as f --
    ## 进度条标准输出
    import sys,time
    for i in range(50):
    sys.stdout.write("#")
    sys.stdout.flush()
    time.sleep(0.03)

    #截断操作
    f=open("bigger2",'w',encoding ="UTF-8")
    for i in range (5):
    f.write("Python day 3 study! ") #必须要r模式
    f.write("UPUPUP! ")
    f.seek(40)
    f.truncate()
    # 文件修改,澳大利亚是个幅员辽阔的国家。=》》上海is a great city!
    f = open("bigger","r",encoding="UTF-8")
    f_new = open("bigger_bak","w",encoding = "UTF-8")
    for line in f:
    if "澳大利亚是个幅员辽阔的国家。" in line:
    line = line.replace("澳大利亚是个幅员辽阔的国家。","上海is a great city!")
    f_new.write(line)
    f.close()
    f_new.close()

    ###利用正则表达式来更新文件
    import os
    import  re
    
    f = open ("bigger2", "r+")
    open('bigger_bak', 'w').write(re.sub(r'UP', 'Love python', f.read()))


    Appendix
    模式描述
    r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
    rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
    r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
    rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
    w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
    w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
    a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
    ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

  • 相关阅读:
    系统结构实践——第一次作业
    个人作业——软件工程实践总结作业
    个人作业——软件评测
    软件工程第五次作业--结队编程
    软件工程第四次作业--结队作业
    第一次个人编程作业
    第一次软工作业
    java第五周上机练习
    Java作业5
    java4
  • 原文地址:https://www.cnblogs.com/ywyin/p/8993963.html
Copyright © 2011-2022 走看看