• L7-1 文本处理


    一、课堂导入

    本节课开始我们进入了代码的新征程,回顾上一个阶段,我们学习到了函数、模块、类等知识,这一阶段,我们将知识点进行整合,去探究更加有趣的编程问题。

    二、文本处理

    1.内容导入

    程序主要包含三个方面:输入、处理、输出。

    计算机系统分为:计算机硬件,操作系统,应用程序三部分。

    我们可以运用input()可以输入信息,但是此时信息是存储到内存中的,不能永久保存。想要永久保存的话,就需要从存储在计算机的硬盘中的文件得到输入,将其保存到文件中。

    2.文件

    2.1 什么是文件

    文件能存储信息,文件的类型可以是文本、图片和程序等,被存储到硬盘、CD、软盘等存储介质中。

    总结:文件是操作系统为用户/应用程序提供的一种操作硬盘的抽象单位

    2.2 为何要用文件

    用户/应用程序对文件的读写操作会由操作系统转换成具体的硬盘操作

    所以用户/应用程序可以通过简单的读写文件来间接地控制复杂的硬盘的存取操作

    实现将内存中的数据永久保存到硬盘中

    name=input('>>>>: ') #name="Rita"

    2.3 文件的种类

    2.4 文件的扩展名

    扩展名是用来表示文件是什么类型的。

    2.5 文件的位置

    每个文件都要存储在某个存储介质里,所以我们必须要找到文件的存储位置,如何找呢?

    例:现在我们需要找一个文件名叫di.txt的文件,已知是存储在电脑C盘下的一个名叫Picture文件中,所以此时我们应该根据以上信息找到我们想要的文件,如下图:

    2.6 文件路径

    准确无误的找到文件位置后,我们一起来学习在python中路径应该如何书写

    电脑上:C:Picturedi.jpg

    python中:C:\Picture\di.jpg

    注意:1.在python中“”是用来换行和转义的

        2.python中想要表示反斜杠功能需先转义,故“\”

    2.7 如何用文件

    文件操作的基本步骤:

    f=open(....) # 打开文件,拿到一个文件对象f,f就相当于一个遥控器,可以向操作系统发送指令

    f.read() # 读写文件,向操作系统发送读写文件指令

    f.close() # 关闭文件

    三、文件操作

    1.打开文件

    在python中,使用open()这个函数来打开并返回文件对象

    打开文件的模式有:

    • r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
    • w,只写模式【不可读;不存在则创建;存在则清空内容】
    • a,   追加模式【可读,不存在则创建;存在则只追加内容】
    • b,【以二进制模式打开文件】
    • t, 【以文本模式打开文件(默认)】

     

    2.操作文件

    3.读取文件

    #掌握
    f.read() #读取所有内容,光标移动到文件末尾
    f.readline() #读取一行内容,光标移动到第二行首部
    f.readlines() #读取每一行内容,存放于列表中
    
    f.write('1111
    222
    ') #针对文本模式的写,需要自己写换行符
    f.write('1111
    222
    '.encode('utf-8')) #针对b模式的写,需要自己写换行符
    f.writelines(['333
    ','444
    ']) #文件模式
    f.writelines([bytes('333
    ',encoding='utf-8'),'444
    '.encode('utf-8')]) #b模式
    
    #了解
    f.readable() #文件是否可读
    f.writable() #文件是否可读
    f.closed #文件是否关闭
    f.encoding #如果文件打开模式为b,则没有该属性
    f.flush() #立刻将文件内容从内存刷到硬盘
    f.name

    案列:

    在电脑桌面右击鼠标按钮,新建一个文件夹,文件名名为code.txt,并写入一些数据。

    1.读取整个文件

    b="C:\Users\admin\Desktop\Text\code.txt"
    f=open(b,mode="r",encoding="utf-8")
    a=f.readlines()
    print(a)

    2.一次读取一行

    b="C:\Users\admin\Desktop\Text\code.txt"
    f=open(b,mode="r",encoding="utf-8")
    first_line=f.readline()
    second_line=f.readline()
    print(first_line)
    print(second_line)

    4.写入文件

     

     注意:如果要让每次写入的内容单独在一行,需要用换行符“ ”

    # 写模式:文件不存在则创建,文件存在则覆盖原有的
    b="C:\Users\admin\Desktop\Text\code.txt"
    f=open(b,mode="w",encoding="utf-8")
    f.write("country")
    # 追加模式:文件不存在则创建,文件存在不会覆盖,写内容是追加的方式写
    b="C:\Users\admin\Desktop\Text\code.txt"
    f=open(b,mode="a",encoding="utf-8")
    f.write("world
    ")
    f.writelines(['aa
    ','bb
    '])

    5.关闭文件

    b="C:\Users\admin\Desktop\Text\code.txt"
    f=open(b,mode="a",encoding="utf-8")
    f.write("world
    ")
    f.close()

    四、上下文管理

    为了防止忘记关闭文件,可使用with关键字,open返回的文件对象只在with代码块内可用。

    with open(failname,"w",encoding="utf-8") as f:

    failname="C:\Users\admin\Desktop\Text\code.txt"
    # f是别名
    with open(failname,"w",encoding="utf-8") as f:
        f.write("hello")

    如果要在with代码块外部访问文件的内容,可将文件各行存储在一个列表中。

    with open(filename,"r",encoding="utf-8") as f:
        lines=f.readlines()
    for line in lines:
        print(line)

    五、实践

    编写一个程序,让用户输入名字、年龄、最喜欢的颜色和最喜欢的食物。

    程序要把所有这四项保存在一个文本文件中,每一项分别放在单独的一行上。

    name=input("Enter your name:")
    age=input("Enter your age:")
    color=input("Enter your favorite color:")
    food=input("Enter your favorite food:")
    with open("mydate.txt","w") as f:
        f.write(name+"
    ")
        f.write(age+"
    ")
        f.write(color+"
    ")
        f.write(food+"
    ")

    六、总结

    # 1.如果要获取大量的数据,就需要从存储在计算机硬盘中的文件得到输入。
    # 2.处理文件有三个步骤:打开文件、操作文件、关闭文件。
    # 3.打开文件有很多种模式,例如“r”、 “w”、 “a”、 “b”。
    # 4.操作文件有读取文件和写入文件两种方式。
  • 相关阅读:
    BZOJ2843:极地旅行社(LCT入门题)
    BZOJ2049:Cave 洞穴勘测 (LCT入门)
    【LSGDOJ1383】修改回文 dp
    【NOIP2016】愤怒的小鸟
    【USACO11NOV】牛的阵容Cow Lineup 尺取法+哈希
    【LSGDOJ1836】: 量化交易 贪心
    【网络流24题】魔术球问题 二分答案+最小路径覆盖
    【网络流24题】1745: 餐巾计划问题
    【网络流24题】分配问题 最小最大费用最大流
    【LSGDOJ1834 Tree】树链剖分
  • 原文地址:https://www.cnblogs.com/xiaoxiao-ya/p/12051733.html
Copyright © 2020-2023  润新知