1. 程式人生 > >Python 實現操作文檔的讀取,續寫,覆蓋重寫自動備份

Python 實現操作文檔的讀取,續寫,覆蓋重寫自動備份

python 文檔讀寫

# 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 )


本文出自 “as1024” 博客,請務必保留此出處http://as1024.blog.51cto.com/12241298/1954814

Python 實現操作文檔的讀取,續寫,覆蓋重寫自動備份