1.用户输入目标文件
old_name = input('请输入您要备份的文件名:')
2. 规划文件备份的名字
- 提取后缀 – 找到文件中的点的索引位置-- 名字和后缀分离–最右侧的点才是后缀的点 – 字符串查找某个子串rfind()
index = old_name.rfind('.')
- 判断用户输入的目标文件是否有效,如果有效提取后缀名字
if index > 0 :
postfix = old_name[index:]
- 组织新名字 = 原名字 + ‘[备份]’ + 后缀
#原名字是就是字符串中的一部分子串 – 切片[开始:结束:步长]
sequence[start:stop:step]
其中:
start
:开始索引,从该索引开始切片,包含此索引。如果未提供,默认为0(序列的开始)。stop
:停止索引,到该索引结束切片,不包含此索引。如果未提供,默认为序列的长度。step
:步长,每隔多少个元素选取一个元素。如果未提供,默认为1。
new_name = old_name[:index] + '[备份]' + postfix
print(new_name)
3. 打开原文件 和 备份文件
old_fp = open(old_name,'rb')
new_fp = open(new_name,'wb')
4.备份文件写入数据
while True:
contents = old_fp.read(1024)
if len(contents) == 0:
break
new_fp.write(contents)
5. 关闭文件
old_fp.close()
new_fp.close()