[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')

相关文章
|
25天前
|
Python
Python文件操作学习应用案例详解
【4月更文挑战第7天】Python文件操作包括打开、读取、写入和关闭文件。使用`open()`函数以指定模式(如'r'、'w'、'a'或'r+')打开文件,然后用`read()`读取全部内容,`readline()`逐行读取,`write()`写入字符串。最后,别忘了用`close()`关闭文件,确保资源释放。
18 1
|
2月前
|
Unix Linux 测试技术
Python超详细基础文件操作(详解版)(下)
Python超详细基础文件操作(详解版)
|
2月前
|
存储 JSON 数据库
Python超详细基础文件操作(详解版)(上)
Python超详细基础文件操作(详解版)
|
2月前
|
Python
Python文件操作功能
Python文件操作功能
24 1
|
4月前
|
Python
掌握Python文件操作的绝招:打造数据之径,揭开文件操作的神秘面纱-2
掌握Python文件操作的绝招:打造数据之径,揭开文件操作的神秘面纱-2
|
24天前
|
存储 JSON 数据管理
文件操作与管理:用Python读写数据
【4月更文挑战第8天】本文介绍了Python中进行高效文件操作与数据管理的方法。通过`os`模块管理目录,使用`open`函数读写文件,`pickle`模块保存和加载复杂数据结构。示例代码展示了如何读取和写入文本文件,处理CSV和JSON数据,以及利用`pickle`序列化和反序列化Python对象。掌握这些技能对于处理现代社会中的数据至关重要。
|
2月前
|
存储 安全 API
【Python 基础教程 21】Python3 文件操作全面指南:从入门到精通的综合教程
【Python 基础教程 21】Python3 文件操作全面指南:从入门到精通的综合教程
89 0
|
16天前
|
Python
python 文件操作和学生管理系统练习
python 文件操作和学生管理系统练习
20 0
|
16天前
|
存储 Python Windows
08-python的文件操作-读写
08-python的文件操作-读写
|
2月前
|
Python 存储
Python文件操作(六)
Python文件操作(六)
32 0
Python文件操作(六)