品牌推广内容,网站建设制作设计seo优化山东,营销型网站建设有哪些建站流程,南湖网站建设公司学习内容#xff1a;《python编程#xff1a;从入门到实践》第二版第10章
知识点#xff1a;
程序异常如何处理#xff1f;try-except-else
多个文件处理
创建文件#xff1a;在文件中储存数据
练习内容#xff1a;
练习10-8#xff1a;猫和狗 创建文件cats.txt和…学习内容《python编程从入门到实践》第二版第10章
知识点
程序异常如何处理try-except-else
多个文件处理
创建文件在文件中储存数据
练习内容
练习10-8猫和狗 创建文件cats.txt和dogs.txt在第一个文件中至少存储三只猫的名字在第二个文件中至少存储三条狗的名字。编写一个程序尝试读取这些文件并将其内容打印到屏幕上。将这些代码放在一个try-except代码块中以便在文件不存在时捕获FileNotFound错误并显示一条友好的消息。将任意一个文件移到另一个地方并确认except代码块中的代码将正确执行。
练习10-9静默的猫和狗 修改你在练习10-8中编写的except代码块让程序在任意文件不存在时静默失败。
我的代码运行结果
filename cats.txt
with open(filename,w) as file_object:file_object.write(rongrong\n)file_object.write(maomao\n)file_object.write(xiluo\n)filename dogs.txt
with open(filename,w) as file_object:file_object.write(pudding\n)file_object.write(little black\n)file_object.write(snow\n)def print_contents(filename):try:with open(filename) as file_object:contents file_object.read()except FileNotFoundError:print(f{filename}文件不存在)passelse:print(f文件内容是{contents})filenames [cats.txt,dogs.txt,rabbit.txt]
for filename in filenames:print_contents(filename) 运行结果 注意点
1.创建新文件夹时以下这行代码中w没有加引号这是常错点
另一个常错点是file_object 忘记下划线
with open(filename,w) as file_object:
2.error的名字在新的程序中不是FileNotFound而是FileNotFoundError见下图提示 3.做本题时为了复习创建文件夹用的是 with openfilename‘w’as file_object:的方法
write在文件中输入内容。
4.定义一个方法也就是打印文件内容的程序即 def print_contents(filename)
这里解答我上次提出的问题方法的使用不用在类class里面依然适用。
5.try except else中except容易拼写错误
except中为了不出问题加上pass按理说不加也可
6.多个文件处理中文件列表 使用for filename in filenames:进行遍历
7.最后调用打印方法的时候不需要句点法而是直接用print_contents(filename)就可以使用也一定程度上解决之前关于def函数 如果不在类里面的调用方式的问题。
练习10-9静默的猫和狗 修改你在练习10-8中编写的except代码块让程序在任意文件不存在时静默失败。
这个只需要改一行代码except里面改为pass即可
filename cats.txt
with open(filename,w) as file_object:file_object.write(rongrong\n)file_object.write(maomao\n)file_object.write(xiluo\n)filename dogs.txt
with open(filename,w) as file_object:file_object.write(pudding\n)file_object.write(little black\n)file_object.write(snow\n)def print_contents(filename):try:with open(filename) as file_object:contents file_object.read()except FileNotFoundError:#print(f{filename}文件不存在)这里加井号下面变成pass即可这样处理可以不显示passelse:print(f文件内容是{contents})filenames [cats.txt,dogs.txt,rabbit.txt]
for filename in filenames:print_contents(filename)