文件操作

有关文件夹与文件的查找,删除等功能在 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:\123\456
print b#
4、分解文件名的扩展名
a, b = os.path.splitext( "c:\\123\\456\\test.txt" )
print a#c:\123\456\test
print b#.txt

5、判断一个路径( 目录或文件)是否存在

b = os.path.exists( "你要判断的路径")
6、判断一个路径是否文件
b = os.path.isfile( "你要判断的路径")
7、判断一个路径是否目录
b = os.path.isdir( "你要判断的路径")
8、获取某目录中的文件及子目录的列表  
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
posted @ 2015-11-08 21:08  侯凯  阅读(440)  评论(0编辑  收藏  举报