需求:用户输入当前目录下任意文件名,完成对该文件的备份功能(备份文件名为xx[备份]后缀,例如:test[备份].txt)。
思考:
① 接收用户输入的文件名---就是准备要复制哪个文件名,一定要写完整,否则会找不到。输入,用input。
② 规划备份文件名----就是根据下标,找名字,后缀改写,比如备份,副本之类的。然后确定哪个是原文件,哪个是新的备份文件,做区别,以及方便后续互相读取数据,写入数据,关闭文件等操作。
③ 备份文件写入数据-----要打开原本文件,再一点点把原本文件的数据内容,读出来,再一点点写入到新的备份文件里面。
④关闭文件----把打开的原本文件,备份文件都关闭。
相关链接:
Python中的标准输入-----input()_python中input输入案例-CSDN博客
Python---字符串中的查找方法--rfind()与rindex()方法----括号里是要获取的字符串_rfind从开头查找字符-CSDN博客
Python---字符串切片-----序列名称[开始位置下标 : 结束位置下标 : 步长]_python中字符串切片步长-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()