Python---文件备份案例(初始版)--涉及查找下标,修改

需求:用户输入当前目录下任意文件名,完成对该文件的备份功能(备份文件名为xx[备份]后缀,例如:test[备份].txt)。

思考:

① 接收用户输入的文件名---就是准备要复制哪个文件名,一定要写完整,否则会找不到。输入,用input。

② 规划备份文件名----就是根据下标,找名字,后缀改写,比如备份,副本之类的。然后确定哪个是原文件,哪个是新的备份文件,做区别,以及方便后续互相读取数据,写入数据,关闭文件等操作。

③ 备份文件写入数据-----要打开原本文件,再一点点把原本文件的数据内容,读出来,再一点点写入到新的备份文件里面。

④关闭文件----把打开的原本文件,备份文件都关闭。

相关链接:

Python中的标准输入-----input()_python中input输入案例-CSDN博客

Python---字符串中的查找方法--rfind()与rindex()方法----括号里是要获取的字符串_rfind从开头查找字符-CSDN博客

Python---字符串切片-----序列名称[开始位置下标 : 结束位置下标 : 步长]_python中字符串切片步长-CSDN博客

Python---练习:字符串切片,给定一个图片的名称为“avatar.png“,使用Python方法获取这个图片的名称(avatar)以及这个图片的后缀(.png)。_avatar.jpg怎么获取-CSDN博客
 

Python--循环中的两大关键词 break 与 continue_python中表示跳出循环的函数是( ) 选择一项: a. continue b. close c.-CSDN博客

Python---死循环概念---while True_while true 可以构成一个死循环-CSDN博客

Python---数据序列中的公共方法-CSDN博客-----len计算长度

Python---文件、基本操作:打开open,写入write,关闭close,读取read/readlines,移动光标seek,mode模式-CSDN博客

代码:


# 1、接收用户输入的文件名(要备份的文件名)
oldname = input('请输入要备份的文件名称:')  # python.txt
# 2、规划备份文件名(python[备份].txt)
# 搜索点号---字符串序列.rfind(子串)  r = right,代表从开始查找,用变量名index接收索引下标
index = oldname.rfind('.')
# 返回文件名和文件后缀
name = oldname[:index]   # 获取 原文件名 . 之前的名字 Python。print(name)---python
postfix = oldname[index:]   # 获取 原文件名 . 之后的后缀 txt。 print(postfix)--txt
newname = name + '[备份]' + postfix   # 进行新文件名  拼接
# 3、对文件进行备份操作---先打开两个文件
old_f = open(oldname, 'rb')
new_f = open(newname, 'wb')

# 读取源文件内容  写入 到 新文件----利用while True死循环,一直读取数据内容,直到没有数据
while True:   #  old_f.read---读 原文件,旧文件
    content = old_f.read(1024)   #因为有的文件数据很多,每次1024个字节,不会卡死,循环读
    if len(content) == 0:   # 长度为0,就是没有内容,break终止结束。len计算长度
        break
    new_f.write(content)  #  new_f 备份的新文件
# 4、关闭两个打开的 文件
old_f.close()
new_f.close()

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唯元素

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值