通过os模块,python程序可以轻松与操作系统进行交互;而内置模块shutil则主要针对文件夹及文件的操作管理。
内置模块os,提供了很多种与操作系统交互的功能方法。举例如下:
>>> import os >>> os.getcwd() # 返回当前所在的工作路径 '/Users/zhuanfou' >>> os.listdir( './' ) # 将指定路径下的文件、文件夹的名称以列表形式返回 ['zhuanfou.txt', 'test'] >>> os.chdir( './test' ) # 将工作路径修改到指定目录下 >>> os.system( 'ls' ) # 在终端执行指定的shell命令 test1.py test2.py test3.py
在Mac或Ubuntu系统的终端输入ls命令,即可列出当前文件夹下所有文件或文件夹的名称。
shutil模块主要用于文件、文件夹的操作处理,比如文件复制、移动、重命名等功能。以上述图中的zhuanfou文件夹作为运行python交互运行的目录,如下所示:
>>> import shutil >>> shutil.copyfile( "zhuanfou.txt", "zf.py" ) # 复制文件 >>> shutil.move( "./test/test1.py", "./t1.py" ) # 移动文件并改名
运行完毕后,上述文件目录则会如下图所示。
使用shutil模块进行文件复制、移动、重命名等操作,比直接使用os模块的system方法加上文件操作的相关shell命令更有好处的一点是:前者是跨操作系统的,python已经在shutil模块内部针对不同的操作系统进行了处理,而直接使用shell命令,则需要针对不同的操作系统进行相应处理。不过若是没有跨操作系统的需求,其实两种方法都可行。