• 文件操作


    文件操作

    1.流程:

    打开文件 通过操作系统打开文件

    open()

    文件句柄:   (优化内存)

    一个句柄就是你给一个文件,设备,套接字(socket)或管道的一个名字, 以便帮助你记住你正处理的名字, 并隐藏某些缓存等的复杂性。

    文件句柄,可迭代对象,保证程序操作的时候只有一行在运行,不是把所有数据放在内存中再做

    2.read

    python2

    data=f.read(5)       #从光标位置后读的字节

    python3

    data=f.read(5)       #从光标位置后读的字符

    3.readline和readlines

    data = f.readline()        #读一行再自动换行

    data2 = f.readlines()     #以列表形式全部读出来,但是以 连接

    #readline和readlines做循环时用

    4.关闭文件

    close()

    5.with

    #为了避免打开文件后忘记关闭,可以通过管理上下文

    with open("test6")  as  f:   #f=open("test6")

    6.写错做

    f = open("test",mode="w",encoding="utf8")       #写的时候在编码

    f.write("hello world")            #写入,如果有会覆盖,没有会直接创建

    如果再加一个 f.write("hello world")  #因为没到close的,所以不会覆盖,再添加

    7.追加

    f = open("test",mode="a",encoding="utf8")   

    f.write("hello world2")

    8.flush刷新工作  (立刻存到硬盘里,不存在缓存里)

    f = open("test",mode="w",encoding="utf8")   

    f.write(“hello test4”)

    f(flush)

    9.进度条

    import  sys
    for i in range (100):
    sys.stdout.write("#")
    sys.stdout.flush()

    import time
    time.sleep(0.5)

    ####################

    10.中间加字符

    import  sys
    for i in range (100):
    sys.stdout.write("#")
    sys.stdout.flush()

    import time
    time.sleep(0.5)

    11.查询功能,根据打印www.oldboy.org便能找到地址

    defaults
    log global
    mode http
    timeout connect 5000ms
    timeout client 50000ms
    timeout server 50000ms
    option dontlognull

    listen stats :8888
    stats enable
    stats uri /admin
    stats auth admin:1234

    frontend oldboy.org
    bind 0.0.0.0:80
    option httplog
    option httpclose
    option forwardfor
    log global
    acl www hdr_reg(host) -i www.oldboy.org
    use_backend www.oldboy.org if www

    backend www.oldboy1.org
    server 10.10.0.10 10.10.0.10 weight 9999 maxconn 33333333333
    server 10.10.10.1 10.10.10.1 weight 22 maxconn 2000
    server 2.2.2.4 2.2.2.4 weight 20 maxconn 3000
    backend www.oldboy2.org
    server 3.3.3.3 3.3.3.3 weight 20 maxconn 3000
    backend www.oldboy20.org
    server 10.10.0.10 10.10.0.10 weight 9999 maxconn 33333333333


    while 1:
    m =input('please input url:').strip()
    l=[]
    flag =False
    with open("haproxy.conf",encoding="utf8") as f_read:
    for line in f_read:
    if line.startswith("backend") and m in line:
    flag =True #flag 相当于一个开关
    continue #下次再进来 if不满足了直接往下走判断
    if line.startswith("backend") and flag: #开关关着的时候也不执行
    break
    if flag:
    l.append(line)

    for i in l:
    print(i)

    12. 可读可写模式(r+  w+  a+)

    r+根据光标位置追加写

    # r+根据光标位置追加写
    f=open("test5",mode="r+",encoding="utf8")
    print(f.read())

    # w+首先会覆盖,再写
    f=open("test5",mode="w+",encoding="utf8")
    print(f.read())
    f.write("where is you")
    f.seek(0) #将光标移到开始位置,seek按字节走,不同于read()方法
    f.seek(5)

    f.tell() #显示在哪个字节
    f.seek(1,1) #从当前字节开始读, 往后打一个字节单位
    f.seek(-3,2) 从2(最后的位置)移动3个字节(负数往左移)
             0表示从文件开头开始计算
    f=open("test5","a+",encoding="utf8")   #追加的时候光标位置默认在最后位置
    f.seek(0)
    print(f.read())
    a+
    文件不可修改,不管光标在哪里,都在最后的位置添加(追加写)
    光标默认在最后,写的时候一定是追加写
    读的时候seek调整
    w+
    先清空,再写(覆盖写),覆盖完了没有光标默认位置
    读的时候按光标位置
    r+
    默认光标在最开始位置,只有读的时候再seek位置
    写的时候追加写


    13.r w a 基于字符操作的

    seek的应用
    断点续传,即rb wb ab 二进制操作

    f=open("test5.tb,encoding="utf8")
    f=open("test5","rb")
    print(f.read())

    f=open("test6","wb")
    f.write("hello李杰".encode("utf8")) #自己调整字节
    f.close()

    f=open("test6","wb")
    wb+
    f.write(b"hello")
    print(f.read())
    f.seek(-1,2)
    print(f.read())

     14.

    #
             
     重新覆盖

     15.

    sys.stdout.write("#")   #标准输出,跟print差不多
    sys.stdout.flush() #文件句柄
  • 相关阅读:
    《构建之法》前三章读后感--软件工程
    复利计算--web版--总结--软件工程
    利率计算v2.0--web版--软件工程
    <更新日期03-31-2016> 复利计算5.0 <已改进>
    0302随笔
    有限自动机的构造与识别
    评论
    C语言文法
    词法分析 after Coding
    词法分析
  • 原文地址:https://www.cnblogs.com/jiangshitong/p/6670199.html
Copyright © 2020-2023  润新知