『无为则无心』Python基础 — 44、对文件和文件夹的操作

1、os模块介绍

os模块提供了多数操作系统的功能接口函数。当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作。

在Python编程时,os模块可以处理文件和目录这些我们日常手动需要做的操作,例如:显示当前目录下所有文件、删除某个文件、获取文件大小等等。

在Python中使用os模块里面的相关功能,具体步骤如下:

  1. 导入os模块。
    import os
    
  2. 使用os模块相关功能。
    os.函数名()
    

2、查看os模块相关文档

Python本地文档中,[Python Module Index] — > [os] ,进入os模块文档界面。

image

点击os就可以查看os模块的官方文档了。

3、os模块常用方法

(1)文件重命名

os.rename(目标文件名, 新文件名)

文件和文件名都可以用该方法重命名。

提示:此方式可以对一个文件进行重命名,也可以用来移动一个文件。

# 相当于移动了BB文件到桌面
os.rename('bb.txt','c:/users/lilichao/desktop/bb.txt')

(2)删除文件

os.remove(目标文件名)

注:如果没有找到指定删除的文件,将会报错。

(3)创建文件夹

在当前目录下创建一个目录

os.mkdir(文件夹名字)

注:有同名的文件夹则会报错。

(4)删除文件夹

os.rmdir(文件夹名字)

(5)获取当前目录

os.getcwd()

(6)改变默认目录

改变目录路径,也就是切换目录。

os.chdir(目录)

(7)获取目录列表

获取某个文件夹下所有文件,返回一个列表。

os.listdir(目录)

需要一个路径作为参数,会获取到该路径下的目录结构,默认路径为 . ,表示当前目录。..就是上一级目录。

该方法会返回一个列表,目录中的每一个文件(夹)的名字都是列表中的一个元素。

4、应用案例

应用1

需求:添加指定字符串,对原文件进行重命名。如test.txt文件,重命名为Python_test.txt

"""
需求1:把code文件夹所有文件重命名Python_xxxx(原文件名)
1. 找到所有文件:
2. 构造名字
3. 重命名
"""
import os

# 1. 找到所有文件:
# 获取code文件夹的目录列表,使用listdir()方法
file_list = os.listdir()

# 2. 遍历文件中的所有名字,进行文件改名
for i in file_list:
    # new_name = 'Python_' + 原文件名i
    new_name = 'Python_' + i

# 3. 重命名
os.rename(i, new_name)

应用2

需求:批量修改文件名,既可添加指定字符串,又能删除指定字符串。

步骤:

  1. 设置添加或删除字符串的的标识。
  2. 获取指定目录的所有文件。
  3. 将原有文件名添加/删除指定字符串,构造新名字。
  4. os.rename()重命名。

代码:

import os

# 设置重命名标识:
# 如果flag取值为1则添加指定字符,
# flag取值为2则删除指定字符
flag = 1

# 获取指定目录,就取当前目录
dir_name = './'

# 获取指定目录的文件列表
file_list = os.listdir(dir_name)
# print(file_list)


# 遍历文件列表内的文件
for name in file_list:

    # 添加指定字符
    if flag == 1:
        new_name = 'Python-' + name
    # 删除指定字符
    elif flag == 2:
        num = len('Python-')
        new_name = name[num:]

    # 打印新文件名,测试程序正确性
    print(new_name)

    # 重命名
    os.rename(dir_name+name, dir_name+new_name)
posted @ 2022-02-21 11:05  繁华似锦Fighting  阅读(318)  评论(0编辑  收藏  举报