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 )
时间: 2024-08-29 07:56:11

Python 实现操作文档的读取,续写,覆盖重写自动备份的相关文章

python+selenium自动化软件测试(第12章):Python读写XML文档

XML 即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进 行定义的源语言.xml 有如下特征: 首先,它是有标签对组成:<aa></aa> 标签可以有属性: <aa id=’123’></aa> 标签对可以嵌入数据: <aa>abc</aa>Python对XML文档读写常用有几个模块: (1) xml.etree.ElementTree ElementTree就像一个轻量级的DOM,具有方便友好的A

Python处理Excel文档(xlrd, xlwt, xlutils)

简介 xlrd,xlwt和xlutils是用Python处理Excel文档(*.xls)的高效率工具.其中,xlrd只能读取xls,xlwt只能新建xls(不可以修改),xlutils能将xlrd.Book转为xlwt.Workbook,从而得以在现有xls的基础上修改数据,并创建一个新的xls,实现修改. (以下属性或方法并非全部,需要更多属性请参看文档:建议先参考文末Demo,再深入了解) xlrd Book(class) 由xlrd.open_work("example.xls"

python 分词计算文档TF-IDF值并排序

文章来自于我的个人博客:python 分词计算文档TF-IDF值并排序 该程序实现的功能是:首先读取一些文档,然后通过jieba来分词,将分词存入文件,然后通过sklearn计算每个分词文档中的tf-idf值,再将文档排序输入一个大文件中 依赖包: sklearn jieba 注:此程序参考了一位同行的程序后进行了修改 # -*- coding: utf-8 -*- """ @author: jiangfuqiang """ import os

python 解析html文档模块HTMLPaeser

python中,有三个库可以解析html文本,HTMLParser,sgmllib,htmllib.他们的实现方法不通,但功能差不多.这三个库中 提供解析html的类都是基类,本身并不做具体的工作.他们在发现的元件后(如标签.注释.声名等),会调用相应的函数,这些函数必须重载,因为基类中不作处理. 用Python中自带的HTMLPaeser模块,解析下面的HTMl文件 要求:1.获取到每一个漏洞的名称,CVE号,风险值 2.显示每一个漏洞单独显示,不要堆叠在一起 3.只获取高风险的漏洞 <htm

python解析PDF文档

1.安装 pip install pdfminer3k 2.  python读取PDF文档代码分析 PDF格式不是规范格式. 尽管它被叫做"PDF文档", 但并不像word或者html文档.PDF的表现更像一张图片.PDF更像是在一张纸的各个准确的位置上把内容都摆放出来.大部分情况下,没有逻辑结构,比如句子或段落,并且不能自适应页面大小的调整.PDFMiner尝试通过猜测它们的布局来重建它们的结构,但是不保证一定能工作.我知道这样很难看,但是,PDF确实不够规范. 下面这个图片是使用流

从多个XML文档中读取数据用于显示webapi帮助文档

前言: 你先得知道HelpPageConfig文件,不知道说明你现在不需要这个,所以下文就不用看了,等知道了再看也不急.当然如果你很知道这个,下文也不用看了,因为你会了. 方法一: new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/Documentation.xml")) 替换成 new XmlDocumentationProvider("PluginsFolder/*.xm

用Python做SVD文档聚类---奇异值分解----文档相似性----LSI(潜在语义分析)

转载请注明出处:电子科技大学EClab——落叶花开http://www.cnblogs.com/nlp-yekai/p/3848528.html SVD,即奇异值分解,在自然语言处理中,用来做潜在语义分析即LSI,或者LSA.最早见文章 An introduction to latent semantic analysis SVD的有关资料,从很多大牛的博客中整理了一下,然后自己写了个python版本,放上来,跟大家分享- 关于SVD的讲解,参考博客 本文由LeftNotEasy发布于http:

Openstack python api 学习文档

Openstack python api 学习文档 转载请注明http://www.cnblogs.com/juandx/p/4953191.html 因为需要学习使用api接口调用openstack,所以上一篇写了一些使用openstack的纯api调用的方法, 但是openstack还提供了更好的python的api,只需要python的包即可,感觉更好使用. 对于compute的api,包是放在了/usr/lib/python2.7/site-packages/novaclient/目录,

VC++ 从文档中读取数据

void 类名::ReadData() { CStdioFile file; CFileException exp; char* old_locale=_strdup(setlocale(LC_CTYPE,NULL) ); setlocale( LC_CTYPE,"chs"); if(file.Open(_T("c:\\MiniMenu.mnu"),CFile::typeText|CFile::modeRead,&exp) == FALSE) { CStri