溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python 實(shí)現(xiàn)操作文檔的讀取,續(xù)寫(xiě),覆蓋重寫(xiě)自動(dòng)備份

發(fā)布時(shí)間:2020-06-18 16:15:43 來(lái)源:網(wǎng)絡(luò) 閱讀:4035 作者:神仙也考試 欄目:建站服務(wù)器
# coding:utf-8
import time   # 備份文件的時(shí)間格式化和操作暫停使用
import shutil   # 作為文件備份使用

# 需求說(shuō)明
"""
# 需求:
#     1、可輸入文檔路徑名稱;
#     2、文本自動(dòng)換行輸入;
#     3、文本自動(dòng)保存;
#     4、可讀取文本
#     5、可覆蓋重寫(xiě);
#     6、若覆蓋重寫(xiě),則備份之前的文件。
"""


# 定義讀取文檔函數(shù)
def read_text(text_url):
    with open(text_url, "r") as read:
        for i in read.readlines():
            print i
        print "*" * 20,"文檔內(nèi)容顯示結(jié)束", "*" * 20

# 定義續(xù)寫(xiě)文檔函數(shù)
def continue_write(text_url):
    write_flag = 1
    read_flag = 1
    while write_flag == 1:
        print "請(qǐng)輸入你所需要輸入的內(nèi)容:\n"
        get_new_string = raw_input()
        with open(text_url, "a+") as write:
            write.write("\n" + get_new_string)  # 每次輸入都進(jìn)行一次換行
        while read_flag == 1:
            print "你所輸入的值已保存,并選擇是否打印查看?\n"
            print "任意鍵,則表示查看!\n輸入Q或q則不查看,繼續(xù)輸入!\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 "若確認(rèn)要退出編輯,請(qǐng)輸入Q或q進(jìn)行退出!\n" \
              "任意鍵,則表示接受繼續(xù)輸入!\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    # 繼續(xù)循環(huán)寫(xiě)操作

# 定義重寫(xiě)文檔函數(shù)
def cover_write(text_url):
    flag_write = 1
    print "正在備份原來(lái)的文件,備份文件以系統(tǒng)時(shí)間和.bak作為備份文件!\n"
    # 引用time模塊來(lái)格式化系統(tǒng)時(shí)間
    # shutil.copy 第一個(gè)參數(shù)為原文件路徑,第二個(gè)參數(shù)為備份文件路徑
    shutil.copy(text_url, text_url + "." + time.strftime("%Y%m%d%H%M%S") + ".bak")
    print "請(qǐng)等待2秒,作為原文件的備份時(shí)間...\n"
    time.sleep(2)
    print "現(xiàn)在你可以重寫(xiě)你的文件...\n"
    print "請(qǐng)輸入你要重寫(xiě)的內(nèi)容...\n"
    get_input_string = raw_input()
    with open(text_url, "w") as cover:
        cover.write(get_input_string)
    while flag_write == 1:
        print "請(qǐng)問(wèn)是否繼續(xù)輸入?\n" \
              "任意鍵則繼續(xù)輸入,輸入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 "當(dāng)前你的文檔內(nèi)容為:\n"
    read_text(text_url)

# 系統(tǒng)主程序入口
if __name__ == "__main__":
    print r"請(qǐng)輸入你所需要讀取的文檔路徑和名稱。"
    print r"例如:E:\Users\Administrator\Desktop\test.txt"
    print "請(qǐng)輸入:\n"
    text_url = raw_input()
    print "\n"
    print "*" * 20, "文檔內(nèi)容顯示開(kāi)始", "*" * 20
    # 調(diào)用查看文檔函數(shù)
    read_text(text_url)
    # 打印空格是為了與文檔內(nèi)容分隔
    print '\n'
    # 打印50個(gè)*,也是為做分隔符使用
    print '-*-' * 10, "進(jìn)入主程序", "-*-" * 10
    print "請(qǐng)問(wèn)是否需要繼續(xù)添加新內(nèi)容?\n" \
        "任意鍵表示繼續(xù)輸入\n" \
        "輸入quit,則退出!\n" \
        "輸入cover,則覆蓋全文重新書(shū)寫(xiě)!系統(tǒng)自動(dòng)會(huì)備份舊文檔,請(qǐng)謹(jǐn)慎操作!"
    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 )


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI