python OS模块批量处理文件

处理文件和文件夹的模块——os

os模块是Python和操作系统进行交互的一个接口,它提供了许多操作文件及文件夹的函数。因为本书在使用Python操控Excel时,会涉及很多与文件名、文件路径、文件夹相关的操作,所以下面介绍一下os模块的基本功能和使用方法。

获取当前运行的Python代码文件路径

先从最简单的获取文件路径开始了解os模块。例如,要获取当前运行的Python代码文件的路径(即该文件的保存位置),可以用os模块中的getcwd()函数来实现。
在E盘中新建一个“list”文件夹,再在其中新建一个Python代码文件(扩展名为“.py”),然后在该文件中输入如下代码:
1 import os
2 path = os.getcwd()
3 print(path)
运行结果如下:
1 E:\list
该结果表示当前运行的Python代码文件保存在E盘下的“list”文件夹中。

列出指定路径下的文件夹包含的文件和子文件夹名称

如果要查看某个文件夹包含的所有文件和子文件夹的名称,可以使用os模块中的listdir()函数。
例如,要列出D盘的“list”文件夹下的所有文件和子文件夹的名称,可以使用如下代码:
1 import os
2 path = ‘d:\list’
3 file_list = os.listdir(path)
4 print(file_list)

分离文件主名和扩展名

如果要分离一个文件的文件主名和扩展名,可以使用splitext()函数。演示代码如下:
1 import os
2 path = ‘example.xlsx’
3 separate = os.path.splitext(path)
4 print(separate)
运行结果如下:
1 (‘example’, ‘.xlsx’)
可以看到,splitext()函数返回的是一个包含两个元素的元组,前一个元素是文件主名,后一个元素是扩展名。

重命名文件和文件夹

os模块中的rename()函数可以重命名文件和文件夹,该函数的语法格式如下:
rename(src, dst)
参数src用于指定要重命名的文件或文件夹,参数dst用于指定文件或文件夹的新名称。
例如,要将D盘“list”文件夹下的“test.xlsx”文件重命名为“example.xlsx”,可以使用如下代码:
1 import os
2 oldname = ‘d:\list\test.xlsx’
3 newname = ‘d:\list\example.xlsx’
4 os.rename(oldname, newname)
运行代码后,D盘“list”文件夹下的文件“test.xlsx”就会被重命名为“example.xlsx”。如果D盘的“list”文件夹下没有名为“test.xlsx”的文件,则会显示“FileNotFoundError”的异常提示。如果D盘的“list”文件夹下已经存在名为“example.xlsx”的文件,也会报错。
rename()函数除了可以重命名文件,还可以修改文件的路径,演示代码如下:
1 import os 2 oldname = ‘d:\list\test.xlsx’3 newname = ‘d:\mask\example.xlsx’4 os.rename(oldname, newname)
运行代码后,D盘“list”文件夹下的“test.xlsx”文件被移动到D盘的“mask”文件夹下,且文件名变为“example.xlsx”。
用rename()函数重命名文件夹和重命名文件的方法基本相同,将文件的路径改为文件夹的路径即可。
例如,要将D盘的“list”文件夹重命名为“newlist”,可以使用如下代码:
1 import os2 oldname = ‘d:\list’3 newname = ‘d:\newlist’4 os.rename(oldname, newname)
需要注意的是,在对文件夹进行重命名时,只能重命名最后一级的文件夹,而不能像重命名文件那样移动位置。

未经允许不得转载:陈海飞博客 » python OS模块批量处理文件

分享到:更多 ()