有关文件夹与文件的查找,删除等功能在 os 模块中实现。使用时需先导入这个模块。
1、取得当前目录
s = os.getcwd()
2、更改当前目录
os.chdir( "C:\123")
3、将一个路径名分解为目录名和文件名两部分
fpath , fname = os.path.split( "你要分解的路径")
a, b = os.path.split( "c:\123\456\test.txt" ) print a#c:123456 print b#
a, b = os.path.splitext( "c:\123\456\test.txt" ) print a#c:123456 est print b#.txt
5、判断一个路径( 目录或文件)是否存在
b = os.path.exists( "你要判断的路径")
b = os.path.isfile( "你要判断的路径")
b = os.path.isdir( "你要判断的路径")
L = os.listdir( "c:/" )
9、创建子目录
os.makedirs( path )
调用有可能失败,可能的原因是:path已存在时(不管是文件还是文件夹)等。
10、删除子目录
os.rmdir( path )
产生异常的可能原因: path子目录中有文件或下级子目录等。
11、删除文件
os.remove( filename )
参考:http://www.jb51.net/article/50070.htm
另外,Python实现递归遍历指定的文件目录,找到所有与指定文件/目录同名称的文件的绝对路径。
def scandir(startdir, target) : os.chdir(startdir) for obj in os.listdir(os.curdir) : if obj == target : print os.getcwd() + os.sep + obj if os.path.isdir(obj) : scandir(obj, target) os.chdir(os.pardir) #!!!
注意:递归调用后,一定不能忘了os.chdir(os.pardir),返回上层目录(即父目录)。
也可以通过下面方式实现:
rootdir = os.getcwd() for (dirpath, dirnames, filenames) in os.walk(rootdir): for dirname in dirnames: print('dirname = ' + dirname) for filename in filenames: print(os.path.join(dirpath, filename)) if(filename=='target'):#搜索目标 #os.chdir(dirpath) #do something