python入门笔记——文件案例(对简易文件的备份,含原代码和优化代码)
# 案例:文件的备份
def copy_file():
# 接收用户输入的文件名
old_filename = input('请输入需要备份的文件名:')
file_list = old_filename.split('.')
# 构造新的文件名,在其最后加上备份的后缀
new_filename = file_list[0] + '备份.' + file_list[1]
# 打开需要备份的文件以及以写的方式打开新文件,若没有则创建
old_file = open(old_filename,'r',encoding='utf-8')
new_file = open(new_filename,'w',encoding='utf-8')
content = old_file.read()# 将原文件中的内容读取出来
new_file.write(content)# 将内容写入备份文件中
old_file.close()
new_file.close()
pass
# copy_file()
# 对于较大的文件,我们用之前的方法是无法完成备份的,所以我们对于之前的代码做出改善
def copy_file_plus():
old_filename = input('请输入需要备份的文件名:')
filenameList = old_filename.split('.')
new_filename = filenameList[0] + '备份.' + filenameList[1]
try:
with open(old_filename,'r',encoding='utf-8') as old_file,open(new_filename,'a',encoding='utf-8') as new_file:
while True:
content = old_file.read(1024)# 改成多次读取,每次读取1024个数据
new_file.write(content)
if len(content) < 1024:
break
pass
pass
pass
pass
except Exception as message:
print(message)
pass
pass
copy_file_plus()
输出结果:
两份代码在小文件的处理上结果相同