题目:
1.应用文件操作的相关知识,通过Python新建一个文件gushi.txt,选择一首古诗写入文件中
2.另外写一个函数,读取指定文件gushi.txt,将内容复制到copy.txt中,并在控制台输出"复制完毕”。
3.提示:分别定义两个函数,完成读文件和写文件的操作尽可能完善代码,添加异常处理。
我的代码:
# -*- codeing = utf-8 -*-
# @Time : 2021/1/20 20:37
# @Author : 贾维斯
# @File : zuoye4.py
# @software : PyCharm
# 1.应用文件操作的相关知识,通过Python新建一个文件gushi.txt,选择一首古诗写入文件中
# 2.另外写一个函数,读取指定文件gushi.txt,将内容复制到copy.txt中,并在控制台输出"复制完毕”。
# 3.提示:分别定义两个函数,完成读文件和写文件的操作尽可能完善代码,添加异常处理。
def write(): #古诗写入
f = open("gushi.txt","w",encoding='utf-8')
f.write("""声声慢·寻寻觅觅
[宋] 李清照
寻寻觅觅,冷冷清清,凄凄惨惨戚戚。
乍暖还寒时候,最难将息。
三杯两盏淡酒,怎敌他、晚来风急?
雁过也,正伤心,却是旧时相识。
满地黄花堆积。憔悴损,如今有谁堪摘?
守着窗儿,独自怎生得黑?
梧桐更兼细雨,到黄昏、点点滴滴。
这次第,怎一个愁字了得!""")
f.close()
print("古诗写入完毕\n")
time.sleep(1)
def read(read_flag): #古诗读取
f = open("gushi.txt","r",encoding='utf-8-sig')
for i in range(0,11):
read_print = f.readline()
print(read_print, end="")
# print("{:>{}}".format(read_print,30),end = "")
print("\n")
time.sleep(1)
print("读取完毕")
time.sleep(1)
read_flag += 1
return read_flag
f.close()
def copy(copy_flag): #文件复制
f = open("gushi.txt","r",encoding='utf-8-sig')
c = open("copy.txt", "w", encoding='utf-8-sig')
lines = f.readlines()
for line in lines:
c.write(line)
f.close()
c.close()
print("\n复制完毕\n")
time.sleep(1)
copy_flag += 1
return copy_flag
#主函数
import time
import os
try:
# os.remove("gushi.txt")
read_flag = 0
copy_flag = 0
f = open("gushi.txt","r",encoding='utf-8-sig')
write()
try:
read_flag = read(read_flag)
if read_flag == 0:
print("读出失败")
time.sleep(1)
copy_flag = copy(copy_flag)
if copy_flag == 0:
print("复制失败")
time.sleep(1)
finally:
f.close()
print("程序执行完毕")
time.sleep(1)
except Exception as result:
print(result)
print("程序异常")
time.sleep(1)
write()
总结:
1.学会了对文件的操作,包括读写,打开格式
2.文件读写乱码问题:
修改前:
f = open("gushi.txt","r")
修改后:
f = open("gushi.txt","r",encoding='utf-8-sig')
3.学会了对错误原因的排除,通过try,finally,except等结构
例程:
#try ... finally 和嵌套
import time
try:
f = open("text1.txt","r")
try:
while True:
content = f.readline()
if len(content) == 0:
break
time.sleep(2)
print(content)
finally:
f.close()
print("程序执行完毕")
except Exception as result:
print("发生异常")