python学习日常-----作业(4)

题目:
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("发生异常")
  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

腾v

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值