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

    文件操作

    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() #文件句柄
  • 相关阅读:
    HihoCoder 1638 : 小Hi的天平 (2-sat+并查集)
    阿里云安全肖力:云上数据安全体系建设的六要素
    MaxCompute客户端(odpscmd)在windows命令行下查询中文乱码问题处理实践
    序列化方案选型对比
    亚洲唯一,阿里云SLB位列Gartner全球网络负载均衡市场前五
    阿里云OSS同城冗余存储技术解析
    OSS跨同城3AZ重磅发布,构造全面数据保护体系
    阿里云OSS同城冗余存储正式商业化,提供云上同城容灾能力
    云原生应用 Kubernetes 监控与弹性实践
    GIAC2019 演讲精选 | 面向未来的黑科技——UI2CODE闲鱼基于图片生成跨端代码
  • 原文地址:https://www.cnblogs.com/jiangshitong/p/6670199.html
Copyright © 2011-2022 走看看