python 文件备份,python备份文件最简单案例

  python 文件备份,python备份文件最简单案例

  大家好,本文主要讲用python实现文件备份。有兴趣的同学过来看看,如果对你有帮助记得收藏。

  00-10101、需求2、步骤3、代码实现(1)接收用户输入的目标文件名(2)规划备份文件名(3)在备份文件中写入数据(4)思考(5)完成编码(4)再来一点练习总结。

  

目录

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

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

  

1、需求

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

  

2、步骤

  

3、代码实现

  Old_name=input(请输入要备份的文件名:)

  

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

  2.1提取目标文件的后缀。

  2.2组织备份的文件名,xx[备份]后缀。

  # 2.1提取文件的后缀点的下标

  index=old_name.rfind( . )

  # 2.2组织新文件名和旧文件名的[备份]后缀

  新名称=旧名称[:索引][备份]旧名称[索引3360]

  

(2)规划备份文件名

  3.1打开源文件和备份文件。

  3.2将源文件数据写入备份文件。

  3.3关闭文件。

  # 3.1打开文件

  old_f=open(旧名称, rb )

  new_f=open(新名称, wb )

  # 3.2将源文件数据写入备份文件

  #如果不确定目标文件大小,循环读写,

  #当读取的数据消失时,停止循环。

  而True:

  #每次在原始文件中读取什么

  con=old_f.read(1024)

  #表示读取完成。

  如果len(con)==0:

  #终止读取

  破裂

  #新文件写入读取的数据。

  new_f.write(续)

  # 3.3关闭文件

  old_f.close()

  new_f.close()

  

(3)备份文件写入数据

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

  答:加上条件判断就行了。

  #后缀只有在有文件名的情况下才能提取。

  #此处无法获取后缀,拼接时没有后缀变量。

  #将报告一个错误

  如果索引为0:

  postfix=旧名称[index:]

  

(4)思考

  1)传统实现

  # 1.用户输入目标文件,例如sound.txt.mp3

  Old_name=input(请输入要备份的文件名:)

  # 2.计划备份文件的名称

  # 2.1提取后缀-

  #找到名字中最右边的点就是后缀点。

  #在右边寻找rfind()方法

  #获取后缀的位置。在文件的全名中

  index=old_name.rfind( . )

  # 4.思考:只为有效文件备份txt。

  如果索引为0:

  #提取后缀,此处无法提取,稍后拼接新文件名时报错。

  postfix=旧名称[index:]

  # 2.2组织的新名称=原始名称的后缀[备份]

  #原始名称是字符串片段中的子字符串的一部分[开始3360步,结束:步]

  # new _ name=old _ name[3360 index][backup] old _ name[Inde

  x:]

  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 读取文本文件(默认值)

  # b 读取二进制文件

  file_name = “hello.txt”

  with open(file_name , rb) as file_obj:

   # 读取文本文件时,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文件备份内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: