大蟒蛇python教程共享用python实现文件备份

目录
  • 1、需求
  • 2、步骤
  • 3、代码实现
    • (1)接收用户输入目标文件名
    • (2)规划备份文件名
    • (3)备份文件写入数据
    • (4)思考
    • (5)完整编码
  • 4、再来一个小练习
    • 总结

      1、需求

      用户输入当前目录下任意文件名,程序完成对该文件的备份功能。

      备份文件名为xx[备份]后缀,例如:test[备份].txt

      2、步骤

      接收用户输入的文件名。规划备份文件名。备份文件写入数据。

      3、代码实现

      (1)接收用户输入目标文件名

      old_name = input('请输入您要备份的文件名:')

      (2)规划备份文件名

      2.1 提取目标文件后缀。
      2.2 组织备份的文件名,xx[备份]后缀。

      # 2.1 提取文件后缀点的下标  index = old_name.rfind('.')    # 2.2 组织新文件名 旧文件名 + [备份] + 后缀  new_name = old_name[:index] + '[备份]' + old_name[index:]  

      (3)备份文件写入数据

      3.1 打开源文件 和 备份文件。
      3.2 将源文件数据写入备份文件。
      3.3 关闭文件。

      # 3.1 打开文件  old_f = open(old_name, 'rb')  new_f = open(new_name, 'wb')    # 3.2 将源文件数据写入备份文件  # 如果不确定目标文件大小,循环读取写入,  # 当读取出来的数据没有了终止循环  while true:      # 每次在原文件中读取的内容      con = old_f.read(1024)      # 表示读取完成了      if len(con) == 0:          # 终止读取          break        # 新文件写入读取的数据      new_f.write(con)    # 3.3 关闭文件  old_f.close()  new_f.close()

      (4)思考

      如果用户输入.txt,这是一个无效文件,程序如何更改才能限制只有有效的文件名才能备份?

      答:添加条件判断即可。

      # 有文件名,才能提取后缀  # 这里无法取得后缀,拼接的时候没有后缀的变量  # 就会报错  if index > 0:      postfix = old_name[index:]  

      (5)完整编码

      1)传统实现

      # 1. 用户输入目标文件  如:sound.txt.mp3  old_name = input('请输入您要备份的文件名:')    # 2. 规划备份文件的名字  # 2.1 提取后缀 --  # 找到名字中的最右侧的点才是后缀的点  # 在右侧查找rfind()方法  # 获取文件全名中后缀.的位置  index = old_name.rfind('.')      # 4. 思考:有效文件才备份 .txt  if index > 0:      # 提取后缀,这里提取不到,后面拼接新文件名字的时候就会报错      postfix = old_name[index:]    # 2.2 组织新名字 = 原名字 + [备份] + 后缀  # 原名字就是字符串中的一部分子串 -- 切片[开始:结束:步长]  # new_name = old_name[:index] + '[备份]' + old_name[index:]  new_name = old_name[:index] + '[备份]' + postfix      # 3. 备份文件写入数据(数据和原文件一样)  # 3.1 打开 原文件 和 备份文件  old_f = open(old_name, 'rb')  new_f = open(new_name, 'wb')    # 3.2 原文件读取,备份文件写入  # 如果不确定目标文件大小,循环读取写入,当读取出来的数据没有了终止循环  while true:      # 每次在原文件中读取的内容      con = old_f.read(1024)      # 表示读取完成了      if len(con) == 0:          # 终止读取          break        # 新文件写入读取的数据      new_f.write(con)    # 3.3 关闭文件  old_f.close()  new_f.close()

      2)实际工作实现

      # 1. 用户输入目标文件  如:sound.txt.mp3  old_name = input('请输入您要备份的文件名:')    # 获取文件全名中后缀.的位置  index = old_name.rfind('.')    # 4.有效文件才备份 .txt  if index > 0:      postfix = old_name[index:]    # 3.开始备份文件  # 打开原文件  with open(old_name , 'rb') as file_obj:      # 组织新名字 = 原名字 + [备份] + 后缀      new_name = old_name[:index] + '[备份]' + postfix        # 创建并打开新文件      with open(new_name, 'wb') as new_obj:          # 定义每次读取的大小          chunk = 1024 * 100            while true:              # 从已有的对象中读取数据              content = file_obj.read(chunk)                # 内容读取完毕,终止循环              if not content:                  break                # 将读取到的数据写入到新对象中              new_obj.write(content)  

      两种方式实现的功能一样。

      4、再来一个小练习

      需求:二进制文件读取(实现方式和上边一样)

      # 读取模式  # t 读取文python教程分享用python实现文件备份件(默认值)  # b 读取二进制文件    file_name = “hello.txt”    with open(file_name , 'rb') as file_obj:      # 读取文python教程分享用python实现文件备份件时,size是以字符为单位的      # 读取二进制文件时,size是以字节为单位      # print(file_obj.read(100))        # 将读取到的内容写出来      # 定义一个新的文件      new_name = 'aa.txt'        with open(new_name , 'wb') as new_obj:            # 定义每次读取的大小          chunk = 1024 * 100            while true :              # 从已有的对象中读取数据              content = file_obj.read(chunk)                # 内容读取完毕,终止循环              if not content :                  break                # 将读取到的数据写入到新对象中              new_obj.write(content)

      注意:纯文python教程分享用python实现文件备份件也可以使用二进制方法进行读取操作。

      总结

      到此这篇关于用python实现文件备份的文章就介绍到这了,更多相关python文件备份内容请搜索<计算机技术网>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网>!

      需要了解更多python教程分享用python实现文件备份,都可以关注python教程分享栏目—计算机技术网(www.ctvol.com)

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

      如若转载,请注明出处:https://www.ctvol.com/pythontutorial/1041337.html

      (0)
      上一篇 2022年1月29日
      下一篇 2022年1月29日

      精彩推荐