zoukankan      html  css  js  c++  java
  • 70.应用1:制作文件的备份

    应用1:制作文件的备份

    任务描述

    • 输入文件的名字,然后程序自动完成对文件进行备份

     

    参考代码

    # 提示输入文件
    oldFileName = input("请输入要拷贝的文件名字:")
    
    # 以读的方式打开文件
    oldFile = open(oldFileName,'rb')
    
    # 提取文件的后缀
    fileFlagNum = oldFileName.rfind('.')
    if fileFlagNum > 0:
        fileFlag = oldFileName[fileFlagNum:]
    
    # 组织新的文件名字
    newFileName = oldFileName[:fileFlagNum] + '[复件]' + fileFlag
    
    # 创建新文件
    newFile = open(newFileName, 'wb')
    
    # 把旧文件中的数据,一行一行的进行复制到新文件中
    for lineContent in oldFile.readlines():
        newFile.write(lineContent)
    
    # 关闭文件
    oldFile.close()
    newFile.close()

    例子1:

    # 01: 首先先创建一个源文件 然后写入数据
    f = open("中国.txt", "w")
    # 写入数据
    f.write("456789hi9h9udn")
    # 关闭文件
    f.close()

    例子2:

    # 02: 打开源文件 读取源文件所有的数据 保存到一个变量中
    old_f = open("中国.txt", "r")
    # 读取数据
    # 如果文件比较大 一次读取 会导致内存暴涨
    ret = old_f.read()
    # 关闭文件
    old_f.close()
    
    # 03: 创建一个新的文件(中国[复件].txt) 把数据写入到新文件中
    new_f = open("中国[复件].txt", "w")
    # 写入数据
    new_f.write(ret)
    # 关闭文件
    new_f.close()

    例子3:

    # 04: 以上代码进行优化 防止内存暴涨
    # 解决方案: 边读边写
    # 打开源文件
    old_f = open("中国.txt", "r")
    # 创建新文件
    new_f = open("中国[复件].txt", "w")
    # 创建一个死循环
    while True:
        # 每次读一个字符
        ret = old_f.read(1)
        if ret:
            # 写入数据
            new_f.write(ret)
        else:
            # 完成了读写
            break
    # 关闭两个文件
    old_f.close()
    new_f.close()
    
    
    # python 中 非零即真(True) 零则假(False)
    # if 0:
    #     print("哈哈")
    # 认为if语句判断字符串的时候外面有一个len函数
    # if "":
    #     print("哈哈")
  • 相关阅读:
    c#常用简化语句
    SQL语句使用中的笔录
    UpdateProgress 实现加载效果
    maven的下载安装,配置本地仓库
    IntelliJ IDEA启动Tomcat后,无法访问Tomcat主页
    SSM框架实现分页
    mybatis-generator-xxxx 使用方法
    Mybatis错误:Parameter 'XXX' not found. Available parameters are [1, 0, param1, param2]
    mybatis高级映射(一对一,一对多)
    SSM整合---实现全部用户查询
  • 原文地址:https://www.cnblogs.com/kangwenju/p/12854262.html
Copyright © 2011-2022 走看看