• python 8 days


     

    python 8 days

    文件操作初始

    文件句柄:

    f1 = open('d:护士空姐学生少妇联系方式.txt', encoding='utf-8', mode='r')
    print(f1.read())
    f1.close()

    open python的内置函数,但是底层调用的windows系统的open功能,open功能就是操作文件用的。

    windows系统默认的编码方式gbk,linux,macos:utf-8

    文件操作流程:

    1,打开文件,产生文件句柄。
    2,对文件句柄进行相应的操作。
    3,关闭文件。

    "r"、"w"、"a"三大文件用法

    读模式:r的五种用法

    read
    read(n)
    readline()
    readlines()
    for循坏
    

    read:

    f2 = open('护士学生空姐班主任.txt', encoding='utf-8')
    print(f2.read())
    f1.close()

    r rb
    1,f.read() 全部读出来。
    f2 = open('护士学生空姐班主任.txt', encoding='utf-8')
    print(f2.read())
    f2.close()

     read(n): 

    f.read(n)
    f1 = open('护士学生空姐班主任.txt', encoding='utf-8')
    print(f1.read(3))
    f1.close()
    r模式:read(n) n 是按照字符读取。
    rb模式:read(n) n 是按照字节读取。
    

    readline():

    readline() 按行读取
    f1 = open('护士学生空姐班主任.txt', encoding='utf-8')
    print(f1.readline())
    print(f1.readline())
    print(f1.readline())
    print(f1.readline())
    f1.close()
    

    readlines():

    readlines() 返回一个list 里面的元素是每一行。
    f1 = open('护士学生空姐班主任.txt', encoding='utf-8')
    print(f1.readlines())
    for line in f1.readlines():
    print(line)
    f1.close()
    

    for循坏:

    for 循环去读取
    f1 = open('护士学生空姐班主任.txt', encoding='utf-8')
    for line in f1:
    print(line)
    f1.close()
    rb、 r+ 、r+b的用法:

    rb模式:后面不加encoding='utf-8'
    rb模式 非文字类的文件
    f1 = open('护士学生空姐班主任.txt',mode='rb')
    print(f1.read(1))
    f1.close()
    

    r+:读写,先读后写

    f1 = open('护士学生空姐班主任.txt', encoding='utf-8', mode='r+')
    print(f1.read())
    f1.write('666')
    f1.close()
    

    r+b读写,先读后写

    f1 = open('护士学生空姐班主任.txt', mode='r+b')
    print(f1.read())
    f1.write('666'.encode('utf-8'))
    f1.close()
    
    写模式:W 的四种用法
    W:没有文件,创建文件写内容。
    W:如果有文件,清空原文件,写入新内容。
    w
    wb
    w+
    w+b
    W:
    f1 = open('log1', encoding='utf-8', mode='w')
    # f1.write('老男孩是最好的培训学校...')
    # f1.close()
    
    # f1 = open('log1', encoding='utf-8', mode='w')
    # f1.write('法国进口分类结果')
    # f1.close()
    

    wb:

    f1 = open('log2', mode='wb')
    # f1.write('法国进口分类结果'.encode('utf-8'))
    # f1.close()
    

    w+:先写后续

    f1 = open('log1', encoding='utf-8', mode='w+')
    f1.write('老老男孩.....')
    f1.seek(0)  # 调整光标
    print(f1.read())
    f1.close()
    

    w+b:操作用法同上

    追加模式:

    a
    ab
    a+
    a+b
    

    a: 

    a:没有文件,创建文件写内容。
    a+:有文件,直接在原文件的后面追加新内容。
    f1 = open('log3', encoding='utf-8', mode='a')
    f1.write('barry')
    f1.close()
    

    a+:追加可续

    f1 = open('log3', encoding='utf-8', mode='a+')
    f1.write('鞠先生是个大帅哥')
    f1.seek(0)
    print(f1.read())
    f1.close()
    
    f1 = open('log3', mode='ab')
    f1.write('中国'.encode('gbk'))
    f1.close()
    
    非文字的文件的读取写入
    f1 = open('11.jpg', mode='rb')
    content = f1.read()
    print(content)
    f1.close()
    f2 = open('小猪佩奇.jpg', mode='wb')
    f2.write(content)
    
    seek: 按照字节去调整光标
    f1 = open('log1', encoding='utf-8')
    f1.seek(3)
    print(f1.read())
    f1.close()
    
    tell 告诉光标的位置
    f1 = open('log1', encoding='utf-8')
    print(f1.tell())
    print(f1.read())
    print(f1.tell())
    f1.close()
    
    truncate 对原文件进行截取内容,以字节形式,只能在a模式下使用。
    f1 = open('log1', encoding='utf-8', mode='a')
    f1.truncate(3)
    f1.close()
    
    文件操作的另一种写法
    with open() as 不用主动关闭 f1.close()
    同一open 可以操作多个文件
    with open('log1', encoding='utf-8') as f1:
    print(f1.read())
    with open('log1', encoding='utf-8') as f1,
    open('log2',encoding='utf-8', mode='w') as f2:
    print(f1.read())
    f2.write('666')
    with open('log1', encoding='utf-8') as f1:
    content = f1.read()
    f1.close()
    pass
    with open('log1', encoding='utf-8',mode='w') as f2:
    f2.write('333')
    
    readlable() writeable()判断是否可读或者可写
    f1 = open('log1', encoding='utf-8')
    print(f1.readable())
    print(f1.writable())
    f1 = open('log1', encoding='utf-8',mode='r+')
    print(f1.readable())
    print(f1.writable())
    

    文件的改:

    1,打开原文件 old_file,将原内容读取到内存。
    2,创建一个新文件new_file。
    3,将原内容通过你改写形成新内容,写入到新文件。
    4,将原文件删除。
    5,将新文件重命名成原文件。
    
    方法一,原文件内容不打,可以用此方法,但是此方法还是很low。
    import os
    with open('change', encoding='utf-8') as f1,
    open('change.bak', encoding='utf-8', mode='w') as f2:
    old_content = f1.read()
    new_content = old_content.replace('alex', 'SB')
    f2.write(new_content)
    os.remove('change')
    os.rename('change.bak', 'change')
    
    方法二
    import os
    with open('change', encoding='utf-8') as f1,
    open('change.bak', encoding='utf-8', mode='w') as f2:
    for line in f1:
    new_line = line.replace('SB', 'alex')
    f2.write(new_line)
    os.remove('change')
    os.rename('change.bak', 'change')
    

      







     

     

     

      

     

     

  • 相关阅读:
    桌面工具集
    运维工具集
    使用Maven插件构建Spring Boot应用程序Docker镜像
    解决Ubuntu 17.10设置面板打不开的问题
    防止Web表单重复提交的方法总结
    深入浅出mybatis之启动详解
    yum方式安装mysql
    在Java中调用Python
    UUID在Java中的实现与应用
    VM克隆后找不到eth0的问题解决
  • 原文地址:https://www.cnblogs.com/juxiansheng/p/9008628.html
Copyright © 2020-2023  润新知