其他分享
首页 > 其他分享> > L7-1 文本处理

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:\Picture\di.jpg

python中:C:\\Picture\\di.jpg

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

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

2.7 如何用文件

文件操作的基本步骤:

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

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

f.close() # 关闭文件

三、文件操作

1.打开文件

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

打开文件的模式有:

 

2.操作文件

3.读取文件

#掌握
f.read() #读取所有内容,光标移动到文件末尾
f.readline() #读取一行内容,光标移动到第二行首部
f.readlines() #读取每一行内容,存放于列表中

f.write('1111\n222\n') #针对文本模式的写,需要自己写换行符
f.write('1111\n222\n'.encode('utf-8')) #针对b模式的写,需要自己写换行符
f.writelines(['333\n','444\n']) #文件模式
f.writelines([bytes('333\n',encoding='utf-8'),'444\n'.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.写入文件

 

 

 

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

# 写模式:文件不存在则创建,文件存在则覆盖原有的
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\n")
f.writelines(['aa\n','bb\n'])

5.关闭文件

 

 

b="C:\\Users\\admin\\Desktop\\Text\\code.txt"
f=open(b,mode="a",encoding="utf-8")
f.write("world\n")
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+"\n")
    f.write(age+"\n")
    f.write(color+"\n")
    f.write(food+"\n")

标签:文件,utf,encoding,文本处理,write,L7,txt,open
来源: https://www.cnblogs.com/xiaoxiao-ya/p/12051733.html