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()这个函数来打开并返回文件对象
打开文件的模式有:
- r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
- w,只写模式【不可读;不存在则创建;存在则清空内容】
- a, 追加模式【可读,不存在则创建;存在则只追加内容】
- b,【以二进制模式打开文件】
- t, 【以文本模式打开文件(默认)】
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