python:文件备份

相信大家在学习《python——文件操作》的时候一定掌握了不少对于txt文件的操作技巧,但是对于txt文件的备份,不管是txt还是csv文件我想都可以备份,备份的好处肯定是显而易见的,那么计算机备份的原理你知道嘛,这其实就是文件备份的核心所在,以下这篇文章将拨动你我的心弦!

1、什么是文件备份

**专业术语:**文件备份是指为防止系统出现操作失误或系统故障导致文件丢失,而将全部或部分文件集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。

**个人理解:**所谓文件备份就是对文件的复制、拷贝,这样你的文件就是双份的了

2、文件备份的作用

**举一个简单的例子:**很多企业电脑里面重要的文件、文档或历史记录,对企业用户至关重要的,一时不慎丢失,都会造成不可估量的损失,轻则辛苦积累起来的心血付之东流,严重的会影响企业的正常运作,给工作造成巨大的损失。为了保障生产、销售、开发的正常运行,企业数据备份相当重要。

3、如何备份文件

对于编程人员,我们学过python语言中os模块下的文件操作,那么我们就要巩固知识,在桌面上ctrl+c、ctrl+v这样有时候显得我们及其的不专业,所以为了装逼,我们有时候就要使用代码实现。

准备工作【1】

首先得要知道文件是否在当前目录还是在其他目录存在,如果存在那么我们就可以备份,如果不存在我们还要创建,所有这里我选择创建,以向大家更好的展示备份流程。

# 操作文件要导入os模块
import os

# 创建文件
# 【1】使用只写模式打开并创建文件
with open("./python课程.txt","w",encoding="utf-8")as file:
    # 创建一个列表,在列表中输入想要写入的内容,最后一个元素后带上换行符\n,因为join函数默认不会给最后一个元素链接
    my_list = ["你好,世界!","你好,python","你好,Java","你好,c++\n"]
    # 使用join函数在列表中的每一个元素后边添加一个一个换行符\n,并返回一个新字符串
    my_str = "\n".join(my_list)
    # 将新字符串写入到文件中,因为有换行符,所有会默认换行
    file.write(my_str)

准备工作【2】

此时该文件已经存在,那么我们可以用listdir函数打印该目录下的文件,然后通过索引的方式拿到那个文件名称,然后我们使用切片技术拿出这个文件的扩展名和文件名称,并且链接成一个备份后的新文件

# 获取该目录下的文件列表
listdir = os.listdir("./")
# 打印文件列表
print(listdir)
# 将那个需要备份的文件通过索引拿出来
my_str = str(listdir[-3])
# 获取.的索引
index = my_str.find(".")
# 截取文件名称 + "(1)"+截取扩展名,生成一个新文件名
new_name = my_str[:index] + "(1)" + my_str[index:]

开始备份【3】

既然需要的备份的文件名我们已经拼接出来了,那么我们就开始备份,所以的备份就是将就文件以读的方式打开,将读到的字符串再写入到新文件中,最后关闭文件即可,就这么简单

# 为了程序的运行效率使用二进制的方式
# 以二进制读的方式打开原始文件
f1 = open(my_str,"rb")
# 以二进制写的方式创建备份的文件
f2 = open(new_name,"wb")
# 如果原始文件内的内容过多我们不能一次全部拿出,所以我们使用死循环
while True:
    # 每次读取10mb
    date = f1.read(1024*1024*10)
    # 如果读取的不为空,那么就写入
    if date:
        f2.write(date)
    # 如果读取的为空,那么就证明读取完毕了,直接跳出循环
    else:
        break
# 最后关闭两个文件
f1.close()
f2.close()

4、小结

以上就是备份文件的全部过程,所以本篇文章到这里就要跟大家说再见了,如果本篇文章有什么不完善的地方,或者对大家造成了误导,还请各位码友能够多多指点,谢谢大家!