[Python]文件操作(二)

简介: [Python]文件操作(二)

3 文件备份

程序备份后的文件名为:备份文件名[备份]后缀,如:test[备份].txt

3.1 文件备份的步骤

  1. 获取需要进行备份的文件名
  2. 根据需要进行备份的文件名,得到备份文件的文件名
  3. 数据写入备份文件

3.2 代码实现

3.2.1 获取需要进行备份的文件名

# 1. 获取需要进行备份的文件名
old_name = input('请输入需要备份的文件名:')
print('需要进行备份的文件名为:', old_name)

3.2.2 得到备份文件的文件名

  1. 提取文件的后缀
  2. 组织备份文件的文件名,xx[备份].后缀
# 2. 根据需要进行备份的文件名,得到备份文件的文件名
# 2.1. 提取文件的后缀
# 找到点的位置
idx = old_name.rfind('.')
print('文件后缀名点的位置下标:', idx)
# 获取文件名字和后缀
file_name = old_name[:idx]
back_name = old_name[idx:]
print('文件的名字为:', file_name)
print('文件的后缀为:', back_name)
# 2.2. 组织备份文件的文件名,xx[备份].后缀
new_name = file_name + '[备份]' + back_name
print('备份文件的文件名为:', new_name)

3.2.3 数据写入备份文件

实现步骤:

(1)打开源文件和备份文件

(2)将源文件数据写入备份文件

(3)关闭文件

# 3. 数据写入备份文件
# 3.1 打开源文件和备份文件
# 不确定打开的文件是什么类型的文件,所以以二进制的形式打开文件
old_f = open(old_name, 'rb')
new_f = open(new_name, 'wb')
# 3.2 将源文件数据写入备份文件
# 由于不确定文件的大小,所以采用循环读取的方式
# 当读取出来的数据没有了,终止循环
while True:
    # 每次读取长度为1024的数据
    content = old_f.read(1024)
    # 当读取的数据长度为0说明读取完成,退出循环
    if len(content) == 0:
        break
    # 将数据写入备份文件
    new_f.write(content)
# 3.3 关闭文件
old_f.close()
new_f.close()

3.2.4 判断文件名是否为有效

当输入的文件名为.txt我们认为是无效文件名,不进行备份,即输入的文件名不能只有文件的后缀而没有文件的名字。

# 1. 获取需要进行备份的文件名
old_name = input('请输入需要备份的文件名:')
print('需要进行备份的文件名为:', old_name)
# 2. 根据需要进行备份的文件名,得到备份文件的文件名
# 2.1. 提取文件的后缀
# 找到点的位置
idx = old_name.rfind('.')
# 判断是否为有效的文件名
# 文件不能只有文件后缀,即后缀前的点的下标位置不能为0
# 输入的文件名有效才执行文件的备份
if idx > 0:
    print('文件后缀名点的位置下标:', idx)
    # 获取文件名字和后缀
    file_name = old_name[:idx]
    back_name = old_name[idx:]
    print('文件的名字为:', file_name)
    print('文件的后缀为:', back_name)
    # 2.2. 组织备份文件的文件名,xx[备份].后缀
    new_name = file_name + '[备份]' + back_name
    print('备份文件的文件名为:', new_name)
    # 3. 数据写入备份文件
    # 3.1 打开源文件和备份文件
    # 不确定打开的文件是什么类型的文件,所以以二进制的形式打开文件
    old_f = open(old_name, 'rb')
    new_f = open(new_name, 'wb')
    # 3.2 将源文件数据写入备份文件
    # 由于不确定文件的大小,所以采用循环读取的方式
    # 当读取出来的数据没有了,终止循环
    while True:
        # 每次读取长度为1024的数据
        content = old_f.read(1024)
        # 当读取的数据长度为0说明读取完成,退出循环
        if len(content) == 0:
            break
        # 将数据写入备份文件
        new_f.write(content)
    # 3.3 关闭文件
    old_f.close()
    new_f.close()
else:
    print('输入的文件名有误,请重新输入...'

3.2.5 判断文件是否存在

由于文件不存在的时候打开文件,会报异常,所以通过是否报异常来判断文件是否存在

# 1. 获取需要进行备份的文件名
old_name = input('请输入需要备份的文件名:')
print('需要进行备份的文件名为:', old_name)
# 2. 根据需要进行备份的文件名,得到备份文件的文件名
# 2.1. 提取文件的后缀
# 找到点的位置
idx = old_name.rfind('.')
# 判断是否为有效的文件名
# 文件不能只有文件后缀,即后缀前的点的下标位置不能为0
# 输入的文件名有效才执行文件的备份
if idx > 0:
    print('文件后缀名点的位置下标:', idx)
    # 获取文件名字和后缀
    file_name = old_name[:idx]
    back_name = old_name[idx:]
    print('文件的名字为:', file_name)
    print('文件的后缀为:', back_name)
    # 2.2. 组织备份文件的文件名,xx[备份].后缀
    new_name = file_name + '[备份]' + back_name
    print('备份文件的文件名为:', new_name)
    # 由于文件不存在会爆异常,所以通过异常判断文件是否存在
    try:
        # 3. 数据写入备份文件
        # 3.1 打开源文件和备份文件
        # 不确定打开的文件是什么类型的文件,所以以二进制的形式打开文件
        old_f = open(old_name, 'rb')
        new_f = open(new_name, 'wb')
        # 3.2 将源文件数据写入备份文件
        # 由于不确定文件的大小,所以采用循环读取的方式
        # 当读取出来的数据没有了,终止循环
        while True:
            # 每次读取长度为1024的数据
            content = old_f.read(1024)
            # 当读取的数据长度为0说明读取完成,退出循环
            if len(content) == 0:
                break
            # 将数据写入备份文件
            new_f.write(content)
        # 3.3 关闭文件
        old_f.close()
        new_f.close()
    except Exception as e:
        print('需要进行备份的文件不存在,请重新输入...')
else:
    print('输入的文件名有误,请重新输入...')

4. 文件和文件夹的操作

这里的文件和文件夹的操作指的是对文件和文件夹本身进行操作,如对文件进行重命名等。

在python中对文件和文件夹进行操作需要借助os模块中的相关功能。

导入os模块:

import os

使用os模块的相关功能:

os.函数名()

4.1 重命名

4.1.1 重命名文件

语法:

os.rename(str, dst)
  • str:文件(文件夹)的完整路径名或文件(文件夹)名
  • dst:文件(文件夹)的新完整路径名或文件(文件夹)的新文件(文件夹)名

对与代码文件在同一目录下的文件进行重命名:

import os
# 对 test.txt 文件进行重命名
os.rename('test.txt', 'test1.txt')

对指定目录下的文件进行重命名:

D:\\桌面文件\\学习时代码文件夹\\1.txt

import os
# 对 test.txt 文件进行重命名
os.rename('D:\\桌面文件\\学习时代码文件夹\\1.txt', 'D:\\桌面文件\\学习时代码文件夹\\test1.txt')

相关文章
|
3月前
|
存储 Python
Python文件操作(1)
【10月更文挑战第17天】
Python文件操作(1)
|
6月前
|
监控 Java 数据处理
文件操作不再难!Python系统编程实战,带你轻松驾驭文件系统与I/O
【7月更文挑战第31天】在 Python 系统编程中, 文件操作与 I/O 管理至关重要。
68 2
|
3月前
|
数据采集 存储 Python
Python文件操作2
【10月更文挑战第18天】
Python文件操作2
|
7月前
|
开发者 Python
Python基础第七篇(Python的文件操作)
Python基础第七篇(Python的文件操作)
|
7月前
|
存储 安全 开发者
文件操作?Python让你轻松搞定!
【6月更文挑战第12天】Python编程中的文件操作至关重要,涉及数据存储和系统交互。通过内置的`open()`函数,开发者可轻松处理文件。以只读模式`'r'`为例,使用`with`语句打开并读取文件内容;写入文件则用`'w'`或`'a'`模式。文件对象还支持高级功能,如文件指针移动,允许随机访问。掌握这些技能能提升开发效率。
41 0
|
4月前
|
存储 Python
Python文件操作
Python文件操作
|
4月前
|
存储 安全 Python
30天拿下Python之文件操作
30天拿下Python之文件操作
36 1
|
4月前
|
监控 安全 Java
文件操作不再难!Python系统编程实战,带你轻松驾驭文件系统与I/O
【9月更文挑战第13天】在Python系统编程中,文件操作与I/O管理至关重要。本文通过五个实战案例分享最佳实践:高效遍历文件系统、优雅处理文件读写、利用缓冲机制优化性能、并行处理文件加速任务以及异常处理确保程序稳健。使用pathlib、上下文管理器及concurrent.futures等工具,助你轻松掌握Python文件系统与I/O操作,提升编程效率和项目质量。 示例代码展示了如何使用pathlib遍历目录、with语句安全读写文件、控制缓冲区大小、并行处理多个文件以及捕获异常保证程序稳定运行。通过这些技巧,你将能够在实际项目中更加高效地管理和操作文件。
52 6
|
5月前
|
IDE 测试技术 开发工具
Python接口自动化测试框架(基础篇)-- 不只是txt的文件操作
本文介绍了Python中的文件操作方法,包括使用open()打开文件、close()关闭文件、read()读取内容、readline()读取单行、readlines()读取多行、write()写入内容以及writelines()写入多行的方法。同时,探讨了文件操作模式和编码问题,并扩展了上下文管理器with...as的使用,以及对图片和音频文件操作的思考和练习。
41 1
Python接口自动化测试框架(基础篇)-- 不只是txt的文件操作
|
3月前
|
Java 程序员 Python
【Python】文件操作
【Python】文件操作
26 0