广告
返回顶部
首页 > 资讯 > 后端开发 > Python >用python实现文件备份
  • 838
分享到

用python实现文件备份

2024-04-02 19:04:59 838人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录1、需求2、步骤3、代码实现(1)接收用户输入目标文件名(2)规划备份文件名(3)备份文件写入数据(4)思考(5)完整编码4、再来一个小练习总结1、需求 用户输入当前目录下任意文

1、需求

用户输入当前目录下任意文件名,程序完成对该文件的备份功能。

备份文件名为xx[备份]后缀,例如:test[备份].txt

2、步骤

接收用户输入的文件名。规划备份文件名。备份文件写入数据。

3、代码实现

(1)接收用户输入目标文件名

old_name = input('请输入您要备份的文件名:')

(2)规划备份文件名

2.1 提取目标文件后缀。
2.2 组织备份的文件名,xx[备份]后缀。

# 2.1 提取文件后缀点的下标
index = old_name.rfind('.')

# 2.2 组织新文件名 旧文件名 + [备份] + 后缀
new_name = old_name[:index] + '[备份]' + old_name[index:]

(3)备份文件写入数据

3.1 打开源文件 和 备份文件。
3.2 将源文件数据写入备份文件。
3.3 关闭文件。

# 3.1 打开文件
old_f = open(old_name, 'rb')
new_f = open(new_name, 'wb')

# 3.2 将源文件数据写入备份文件
# 如果不确定目标文件大小,循环读取写入,
# 当读取出来的数据没有了终止循环
while True:
    # 每次在原文件中读取的内容
    con = old_f.read(1024)
    # 表示读取完成了
    if len(con) == 0:
        # 终止读取
        break

    # 新文件写入读取的数据
    new_f.write(con)

# 3.3 关闭文件
old_f.close()
new_f.close()

(4)思考

如果用户输入.txt,这是一个无效文件,程序如何更改才能限制只有有效的文件名才能备份?

答:添加条件判断即可。

# 有文件名,才能提取后缀
# 这里无法取得后缀,拼接的时候没有后缀的变量
# 就会报错
if index > 0:
    postfix = old_name[index:]

(5)完整编码

1)传统实现

# 1. 用户输入目标文件  如:sound.txt.mp3
old_name = input('请输入您要备份的文件名:')

# 2. 规划备份文件的名字
# 2.1 提取后缀 --
# 找到名字中的最右侧的点才是后缀的点
# 在右侧查找rfind()方法
# 获取文件全名中后缀.的位置
index = old_name.rfind('.')


# 4. 思考:有效文件才备份 .txt
if index > 0:
    # 提取后缀,这里提取不到,后面拼接新文件名字的时候就会报错
    postfix = old_name[index:]

# 2.2 组织新名字 = 原名字 + [备份] + 后缀
# 原名字就是字符串中的一部分子串 -- 切片[开始:结束:步长]
# new_name = old_name[:index] + '[备份]' + old_name[index:]
new_name = old_name[:index] + '[备份]' + postfix


# 3. 备份文件写入数据(数据和原文件一样)
# 3.1 打开 原文件 和 备份文件
old_f = open(old_name, 'rb')
new_f = open(new_name, 'wb')

# 3.2 原文件读取,备份文件写入
# 如果不确定目标文件大小,循环读取写入,当读取出来的数据没有了终止循环
while True:
    # 每次在原文件中读取的内容
    con = old_f.read(1024)
    # 表示读取完成了
    if len(con) == 0:
        # 终止读取
        break

    # 新文件写入读取的数据
    new_f.write(con)

# 3.3 关闭文件
old_f.close()
new_f.close()

2)实际工作实现

# 1. 用户输入目标文件  如:sound.txt.mp3
old_name = input('请输入您要备份的文件名:')

# 获取文件全名中后缀.的位置
index = old_name.rfind('.')

# 4.有效文件才备份 .txt
if index > 0:
    postfix = old_name[index:]

# 3.开始备份文件
# 打开原文件
with open(old_name , 'rb') as file_obj:
    # 组织新名字 = 原名字 + [备份] + 后缀
    new_name = old_name[:index] + '[备份]' + postfix

    # 创建并打开新文件
    with open(new_name, 'wb') as new_obj:
        # 定义每次读取的大小
        chunk = 1024 * 100

        while True:
            # 从已有的对象中读取数据
            content = file_obj.read(chunk)

            # 内容读取完毕,终止循环
            if not content:
                break

            # 将读取到的数据写入到新对象中
            new_obj.write(content)

两种方式实现的功能一样。

4、再来一个小练习

需求:二进制文件读取(实现方式和上边一样)

# 读取模式
# t 读取文本文件(默认值)
# b 读取二进制文件

file_name = “hello.txt”

with open(file_name , 'rb') as file_obj:
    # 读取文本文件时,size是以字符为单位的
    # 读取二进制文件时,size是以字节为单位
    # print(file_obj.read(100))

    # 将读取到的内容写出来
    # 定义一个新的文件
    new_name = 'aa.txt'

    with open(new_name , 'wb') as new_obj:

        # 定义每次读取的大小
        chunk = 1024 * 100

        while True :
            # 从已有的对象中读取数据
            content = file_obj.read(chunk)

            # 内容读取完毕,终止循环
            if not content :
                break

            # 将读取到的数据写入到新对象中
            new_obj.write(content)

注意:纯文本文件也可以使用二进制方法进行读取操作。

总结

到此这篇关于用python实现文件备份的文章就介绍到这了,更多相关Python文件备份内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 用python实现文件备份

本文链接: https://www.lsjlt.com/news/137986.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 用python实现文件备份
    目录1、需求2、步骤3、代码实现(1)接收用户输入目标文件名(2)规划备份文件名(3)备份文件写入数据(4)思考(5)完整编码4、再来一个小练习总结1、需求 用户输入当前目录下任意文...
    99+
    2022-11-13
  • 怎么用python实现文件备份
    这篇文章主要介绍“怎么用python实现文件备份”,在日常操作中,相信很多人在怎么用python实现文件备份问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用python实现文件备份”的疑惑有所帮助!接下来...
    99+
    2023-06-29
  • python 脚本实现备份文件
    ''' 功能:备份文件 版本:1.0 作者:白 ''' import  os,time,sys d_dir = '/data/backup/' d_file = 'system_bak.tar.gz' s_dir = ['/etc','/b...
    99+
    2023-01-31
    脚本 备份文件 python
  • 用python备份文件
    光说不练假把式,用小脚本学习Python。 一个简单的备份脚本。 #!/usr/bin/env python3 #-*- coding:utf-8 -*- #for backup import os import time #需要备份的目...
    99+
    2023-01-31
    备份文件 python
  • Python 实现文件的全备份和差异备份详解
    Python实现文件的全备份和差异备份 之前有写利用md5方式来做差异备份,但是这种md5方式来写存在以下问题: md5sum获取有些软连接的MD5值存在问题 不支持对空目录进行备份,因为md5...
    99+
    2022-06-04
    备份 详解 差异
  • python windows备份文件in
    看着python简明教程学习python,备份文件的时候老是出现问题。这里记录一下解决方案。info-zip下载地址:http://www.info-zip.org/Zip.html#Downloads代码如下:import os ...
    99+
    2023-01-31
    备份文件 python windows
  • Java实现定时备份文件
    本文实例为大家分享了Java如何定时备份文件的具体实现代码,供大家参考,具体内容如下 程序思路: 1.空目录不备份,但非空目录都备份 2.源目录 source 要递归他下面所有的文件...
    99+
    2022-11-12
  • 如何使用vbs实现文件备份
    这篇文章主要为大家展示了“如何使用vbs实现文件备份”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用vbs实现文件备份”这篇文章吧。objs = "c:\aa...
    99+
    2023-06-08
  • python---备份目录和文件
    为重要的文件进行备份:思路:1.需要备份的文件和目录由一个列表指定。2.备份应该保存在主备份目录中。3.文件备份成一个tar.gz文件。4.zip存档的名称是当前的日期和时间。5.我们使用标准的tar.gz命令.#!/usr/bin/env...
    99+
    2023-01-31
    备份 文件 目录
  • Centos7备份文件时备份文件加入备件日期
    linux是以文件为基础来管理系统中的设备、接口、文件、启动及应用软件,因为在本时过程中,对应用系统的.conf文件、脚本软件、shell等在编辑时都要求先做备份。一般我对重要文件进行操作时,都要对文件先进行备份,如: ...
    99+
    2022-06-04
    centos7备份文件 centos7 备份日期
  • Linux实现文件定期本地备份/异地备份/删除备份的脚本
    目录一.背景二.依赖功能介绍1.expect2.cron3.liunx的三个时间atime,mtime,ctime三.本地备份脚本四.异地备份脚本五.定期删除备份六.github脚本地址一.背景 1.总会出出现环境上的数...
    99+
    2022-10-13
  • mysql通过复制文件实现备份
    mysqldump的方法耗时:备份+网络传输+恢复 缺点:时间 直接复制文件的方法耗时:网络传输 缺点:可能造成意外的情况 第一种已经实践过了,今天试下第二种。 1.tar zxvf bak.tar.gz xxx xxx 把几个文件...
    99+
    2017-03-05
    mysql通过复制文件实现备份
  • python 简单备份文件脚本v1.0的实例
    整体思路 将要备份的目录列为一个列表,通过执行系统命令,进行压缩、备份。 这样关键在于构造命令并使用 os.system( )来执行,一开始使用zip 命令始终没有成功,后来发现Windows下并没有这个命...
    99+
    2022-06-04
    脚本 实例 备份文件
  • C/C++详解如何实现文件备份
    目录一、C语言库的实现方法:二、系统调用函数:编写C程序,模拟实现Linux文件系统的简单I/O流操作:备份文件,将源文件source.dat备份为target.dat文件。要求: ...
    99+
    2022-11-13
  • 简单实用的mysql数据库备份 网页文件备份
    安装percona-xtrabackuphttp://990487026.blog.51cto.com/10133282/1759237root@uat:/backup# cat xtr...
    99+
    2022-10-18
  • 怎么用批处理实现文件备份器V2.3
    这篇文章将为大家详细讲解有关怎么用批处理实现文件备份器V2.3,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码如下:@echo off ::::::::::::::::::::::::::::...
    99+
    2023-06-09
  • 利用Python脚本操作在Linux中实现文件备份与同步
    标题:使用Python脚本在Linux中实现文件备份与同步引言:在日常工作和生活中,文件备份和同步是非常重要的任务。特别是在Linux系统中,我们可以利用Python脚本来自动化这一过程,提高工作效率。本文将介绍如何使用Python脚本实现...
    99+
    2023-10-22
    Python Linux 脚本 同步 文件备份
  • Oracle RMAN备份之控制文件备份
    进入RMAN界面rman target / RMAN>修改控制文件备份方式为自动备份RMAN > configure controlfile&...
    99+
    2022-10-18
  • linux实现对上传文件的定时备份、增量备份的方法
    介绍 如果你们使用的是类似阿里云的OSS存储服务,那么可以使用服务提供的定时备份,这样可以不用考虑在服务器上做文件备份。 实际上想实现基础的备份还是非常简单的,我们平常使用tar、unzip等命令打包文件,在这个基础...
    99+
    2022-06-03
    linux 上传文件备份 linux 上传文件定时备份 linux上传文件增量备份
  • 如何使用Xcopy实现海量文件复制和备份
    这篇文章给大家分享的是有关如何使用Xcopy实现海量文件复制和备份的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。首先,Xcopy是什么Xcopy是一个Windows自带的复制文件和目录的工具,可以复制子目录,是个...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作