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

    20.1 文件操作的初识
    f1 = open(r'C:UsersoldboyDesktop学习.txt',encoding='utf-8',mode='r')
    content = f1.read()
    print(content)
    f1.close()
    

    open内置函数,open底层调用的是操作系统的接口。

    f1,变量,f1,fh,file_handler,f_h文件句柄。对文件进行的任何操作,都得通过文件句柄的方式。

    encoding:可以不写,不写参数,默认编码本:操作系统的默认的编码

    windows:gbk

    linux:utf-8.

    mac:utf-8

    f1.close()关闭文件句柄。

    文件操作三部曲:

    1.打开文件。

    2.对文件句柄进行相应的操作。

    3.关闭文件

    20.2 文件操作的读

    read 全部读出来

    f=open('文件的读',encoding='utf-8')
    content=f.read()
    print(content,type(content))
    f.close()
    

    read(n)按照字符读取

    f=open('文件的读',encoding='utf-8')
    content = f.read(5)
    print(content)
    f.close()
    

    readline()按行读取

    f = open('文件的读', encoding='utf-8')
    print(f.readline())
    print(f.readline())
    print(f.readline())
    f.close()
    

    readlines()返回一个列表,列表中每个元素是源文件的每一行。

    f = open('文件的读', encoding='utf-8')
    l1 = f.readlines()
    #['小刚,12,nan,大学
    ', '小红,19,你,大学
    ']
    for line in l1:
    	print(line)
    print(l1)#['小刚,12,nan,大学
    ', '小红,19,你,大学
    ']
    f.close()
    

    for 读取

    f=open('文件的读', encoding='utf-8')
    ['abc太白金星最帅
    ', '老男孩最好的老师
    ', '老男孩教育是最好的学校
    ', 'fhsjdkfha
    ', 'fhdsfads
    ']
    for line in f:
    	print(line)
    f.close()
    f=open('tupian.jpg',mode='rb')
    content=f.read()
    print(content)
    f.close()
    
    20.3 文件操作的写

    1.没有文件,创建文件,写入内容

    f=open('文件的写',encoding='utf-8',mode='w')
    f.write('随便写一点')
    f.close()
    

    2.如果文件存在,先清空源文件内容,在写入新内容

    f=open('文件的写',encoding='utf-8',mode='w')
    f.write('太白最帅...')
    f.close()
    

    3,wb

    f = open('美女.jpg',mode='rb')
    content = f.read()
    # print(content)
    f.close()
    
    f1 = open('美女2.jpg',mode='wb')
    f1.write(content)
    f1.close()
    
    20.4 文件的追加

    没有文件创建文件,追加内容

    f=open('文件的追加',encoding='utf-8',mode='a')
    f.write('太白最帅....')
    f.close()
    

    有文件,在原文件的最后面追加内容

    f=open('文件的追加',encoding='utf-8',mode='a')
    f.write('123546.')
    f.close()
    
    20.5 文件操作的其他模式

    1.r+读并追加,顺序不能错误

    f = open('文件的读写', encoding='utf-8',mode='r+')
    content=f.read()
    print(content)
    f.write('生活如此美好')
    f.close()
    

    错误示例:

    f = open('文件的读写', encoding='utf-8', mode='r+')
    f.write('人的一切痛苦,,,本质都是对自己无能的愤怒,,,')
    content = f.read()
    print(content)
    f.close()

    2.w+ 写读

    f= open("day8",mode="w+",encoding="utf-8")
    f.write("你您你你")
    f.seek(0)需要把鼠标归零位
    print(f.read())
    f.close()
    

    3.a+ 追加写读

    1.
    f = open("a",mode="a+",encoding="gbk")
    print(f.tell())#查看的是字节
    f.seek(0) #需要先将鼠标回到零位
    print(f.read(1))#字符
    f.write('没太大用')此时直接覆盖
    f.close()
    2,
    f = open("a",mode="a+",encoding="gbk")
    print(f.tell())#查看的是字节
    f.seek(0) #需要先将鼠标回到零位
    print(f.read(1))#字符
    f.seek(0,2)#将鼠标归到最后的位置
    f.write('可直接在后面添加')
    f.close()
    
    20.6 光标其他操作:

    查看光标:tell()返回值,返回的就是当前光标的位置

    移动光标:

    ​ seek(0,0) 文件开始位置

    ​ seek(0,1)光标的当前位置

    ​ seek(0,2)文件末尾位置

    ​ seek(3) 按照字节调节 使用utf-8 是3 gbk是2

    20.7 文件操作的其他功能

    1.tell获取光标的位置,单位字节。

    f=open('文件的读写',encoding='utf-8')
    print(f.tell())
    content=f.read()
    print(content)
    print(f.tell)
    f.close()
    

    2.seek调整光标的位置

    f=open('文件的读写',encoding='utf-8')
    f.seek(7)
    content=f.read()
    print(content)
    f.close()
    

    3.flus强制刷新

    f=open('文件的读写',encoding='utf-8',mode='w')
    f.write('1232445')
    f.flush()
    f.close()
    
    20.8 打开文件的另一种方式

    优点:不用手动关闭文件句柄

    with open('文件的读',encoding='utf-8') as f1:
        print(f1.read()
    
    with open('文件的读', encoding='utf-8') as f1,
            open('文件的写', encoding='utf-8', mode='w')as f2:
        print(f1.read())
        f2.write('hfdsjkghkajhsdjg')
    
    20.9 文件改的操作

    1, 以读的模式打开原文件。
    2,以写的模式创建一个新文件。
    3,将原文件的内容读出来修改成新内容,写入新文件。
    4,将原文件删除。
    5,将新文件重命名成原文件。

    low版

    import os
    # 1, 以读的模式打开原文件。
    # 2,以写的模式创建一个新文件。
    with open('alex自述',encoding='utf-8') as f1,
        open('alex自述.bak',encoding='utf-8',mode='w') as f2:
    # 3,将原文件的内容读出来修改成新内容,写入新文件。
        old_content = f1.read()
        new_content = old_content.replace('alex', 'SB')
        f2.write(new_content)
    os.remove('alex自述')
    os.rename('alex自述.bak','alex自述')
    

    进阶版

    import os
    # 1, 以读的模式打开原文件。
    # 2,以写的模式创建一个新文件。
    with open('alex自述',encoding='utf-8') as f1,
        open('alex自述.bak',encoding='utf-8',mode='w') as f2:
    # 3,将原文件的内容读出来修改成新内容,写入新文件。
        for line in f1:
            # 第一次循环 SB是老男孩python发起人,创建人。
            new_line = line.replace('SB', 'alex')
            f2.write(new_line)
    os.remove('alex自述')
    os.rename('alex自述.bak','alex自述')
    
  • 相关阅读:
    ConditionedActivityGroup
    一个WF系统架构草图
    新添加了一个栏目
    入门篇(3):了解一下Activity的使用
    再谈调用子流程(2)
    自定义WorkflowRole
    ListenActivity
    WhileActivity
    我是一只鸟
    得到工作流结点列表
  • 原文地址:https://www.cnblogs.com/pythonblogs/p/11047790.html
Copyright © 2011-2022 走看看