Python 实现操作文档的读取,续写,覆盖重写自动备份
admin
2023-03-17 01:21:09
0
# coding:utf-8
import time   # 备份文件的时间格式化和操作暂停使用
import shutil   # 作为文件备份使用

# 需求说明
"""
# 需求:
#     1、可输入文档路径名称;
#     2、文本自动换行输入;
#     3、文本自动保存;
#     4、可读取文本
#     5、可覆盖重写;
#     6、若覆盖重写,则备份之前的文件。
"""


# 定义读取文档函数
def read_text(text_url):
    with open(text_url, "r") as read:
        for i in read.readlines():
            print i
        print "*" * 20,"文档内容显示结束", "*" * 20

# 定义续写文档函数
def continue_write(text_url):
    write_flag = 1
    read_flag = 1
    while write_flag == 1:
        print "请输入你所需要输入的内容:\n"
        get_new_string = raw_input()
        with open(text_url, "a+") as write:
            write.write("\n" + get_new_string)  # 每次输入都进行一次换行
        while read_flag == 1:
            print "你所输入的值已保存,并选择是否打印查看?\n"
            print "任意键,则表示查看!\n输入Q或q则不查看,继续输入!\n"
            get_search_input_key = raw_input()
            if get_search_input_key == "Q" or get_search_input_key == "q":
                continue_write(text_url)
                read_flag = 0
            else:
                read_text(text_url)
                read_flag = 0
        print "若确认要退出编辑,请输入Q或q进行退出!\n" \
              "任意键,则表示接受继续输入!\n"
        get_input_key = raw_input()
        if get_input_key == "Q" or get_input_key == "q":
            print "GoodBye..."
            write_flag = 0
        else:
            read_flag = 1   # 可以再次判定是否需要读的操作
            continue    # 继续循环写操作

# 定义重写文档函数
def cover_write(text_url):
    flag_write = 1
    print "正在备份原来的文件,备份文件以系统时间和.bak作为备份文件!\n"
    # 引用time模块来格式化系统时间
    # shutil.copy 第一个参数为原文件路径,第二个参数为备份文件路径
    shutil.copy(text_url, text_url + "." + time.strftime("%Y%m%d%H%M%S") + ".bak")
    print "请等待2秒,作为原文件的备份时间...\n"
    time.sleep(2)
    print "现在你可以重写你的文件...\n"
    print "请输入你要重写的内容...\n"
    get_input_string = raw_input()
    with open(text_url, "w") as cover:
        cover.write(get_input_string)
    while flag_write == 1:
        print "请问是否继续输入?\n" \
              "任意键则继续输入,输入Q或q则退出输入!"
        get_write_continue_key = raw_input()
        if get_write_continue_key == "Q" or get_write_continue_key == "q":
            flag_write = 0
        else:
            continue_write(text_url)
            flag_write = 0
    print "当前你的文档内容为:\n"
    read_text(text_url)

# 系统主程序入口
if __name__ == "__main__":
    print r"请输入你所需要读取的文档路径和名称。"
    print r"例如:E:\Users\Administrator\Desktop\test.txt"
    print "请输入:\n"
    text_url = raw_input()
    print "\n"
    print "*" * 20, "文档内容显示开始", "*" * 20
    # 调用查看文档函数
    read_text(text_url)
    # 打印空格是为了与文档内容分隔
    print '\n'
    # 打印50个*,也是为做分隔符使用
    print '-*-' * 10, "进入主程序", "-*-" * 10
    print "请问是否需要继续添加新内容?\n" \
        "任意键表示继续输入\n" \
        "输入quit,则退出!\n" \
        "输入cover,则覆盖全文重新书写!系统自动会备份旧文档,请谨慎操作!"
    is_continue_or_cover = raw_input()
    if is_continue_or_cover == "quit":
        print "GoodBye..."
    elif is_continue_or_cover == "cover":
        cover_write(text_url)
    else:
        continue_write(text_url )


上一篇:Django部署

下一篇:spotlight安装

相关内容

热门资讯

ICC逮捕令致内塔尼亚胡出行受... 【环球网报道】据以色列《新消息报》网站26日报道,由于国际刑事法院(ICC)2024年就以色列在巴勒...
“罗永浩怒斥电视机厂商”戳中了... 7月25日晚,罗永浩发文怒斥当下电视机的产品设计。据都市快报报道,罗永浩表示,他为家中老人换了两次电...
各地各部门坚持人民至上筑牢防汛... 新华社北京7月25日电 题:风雨同舟映初心——各地各部门坚持人民至上筑牢防汛抗洪坚实堤坝新华社记者当...
法院回应LV起诉地产开发商 7月26日,厦门市湖里区人民法院发布情况通报,网传案情“路易威登公司起诉地产开发商,因楼盘外立面四叶...
携程的问题不仅在于垄断,更在于... 国内平台科技企业一般都是通过向B端收费、抽佣获利,尽量给消费者创造一个比较清爽的使用环境。携程算是最...
海信电视用遥控器关闭后打不开 原因可能是遥控器的电池没有装好或者是没电了,需要重新安装一下电池或者更换新的电池试一试;原因可能是电...
电视机突然没电源打不开了 有可能是电视开关的电源线断了;可能是电视在使用时短路;可能是电源插头插座松动;可能是电视内部零件接触...
电热水器下面那个小龙头漏水是怎... 电热水器下面那个小龙头漏水是怎么回事?1、因为安全阀发生了故障或者是已经被损坏了,就会有漏水的现象;...
回答下电脑桌面一片空白怎么恢复 电脑桌面上如果是一片空白,那说明您的电脑图标被隐藏了,想要恢复就要按照如下的三个步骤去操作才行。 第...
澳总理要找特朗普“理论”关税:... 当地时间7月26日,澳大利亚总理阿尔巴尼斯表示,他将直接向美国总统特朗普提出抗议,反对美国新近宣布的...