相关链接:
Python---文件备份案例(初始版)--涉及查找下标,修改_编写一个脚本,遍历/data目录下的txt文件,将这些txt文件做一个备份,备份文件名增加-CSDN博客
因为用户输入内容是不可控的,所以在进行文件操作前,需要对用户输入内容进行校验,确定是否输入的文件名正确,否则会报错。
原本实例代码
# 1、接收用户输入的文件名(要备份的文件名) oldname = input('请输入要备份的文件名称:') # python.txt # 2、规划备份文件名(python[备份].txt) # 搜索点号 index = oldname.rfind('.') # 返回文件名和文件后缀 name = oldname[:index] postfix = oldname[index:] newname = name + '[备份]' + postfix # 3、对文件进行备份操作 old_f = open(oldname, 'rb') new_f = open(newname, 'wb') # 读取源文件内容写入新文件 while True: content = old_f.read(1024) if len(content) == 0: break new_f.write(content) # 4、关闭文件 old_f.close() new_f.close()
补充:
遗留问题:我们要备份的文件名称都是由用户通过input方法输入而来的,但是一定要记住,只要在程序中有人为输入,强烈建议对用户输入的数据进行校检。
所有用户的输入都是不靠谱的!
解决用户输入文件名称异常问题:
新代码:---包含输入校验---用户输入错误后,进行判断,提醒。
# 1、接收用户输入的文件名(要备份的文件名) oldname = input('请输入要备份的文件名称:') # python.txt # 2、规划备份文件名(python[备份].txt) # 搜索点号 index = oldname.rfind('.') # 对index进行判断,判断是否合理(index > 0) if index > 0: # 返回文件名和文件后缀 name = oldname[:index] postfix = oldname[index:] newname = name + '[备份]' + postfix # 3、对文件进行备份操作 old_f = open(oldname, 'rb') new_f = open(newname, 'wb') # 读取源文件内容写入新文件 while True: content = old_f.read(1024) if len(content) == 0: break new_f.write(content) # 4、关闭文件 old_f.close() new_f.close() else: print('请输入正确的文件名称,否则无法进行备份操作...')