os.path模块:处理长文件名(路径名)的函数

os.path模块:处理长文件名(路径名)的函数.

 

1.处理文件名

filename="/home/trade/tinit.txt"

使用os.path模块处理文件名

os.path.split(filename)#('/home/trade','tinit.txt')

os.path.splitext(filename)  #('/home/trade/tinit', '.txt')

os.path.dirname(filename)  #'/home/trade'

os.path.basename(filename)  #'tinit.txt'

#路径各个部分的拼接

os.path.join(os.path.dirname(filename),os.path.basename(filename)) #"/home/trade/tinit.txt"

#规范化路径:尤其是混合绝对路径和相对路径, window和unix风格的路径等

os.path.normpath('c://windows\\System32\\../Temp/')   #'c:\\windows\\Temp' 


os.path模块检查文件名的特征

os.path.exists(file)  #是否存在

os.path.isabs(file)  #是否是绝对路径

os.path.isdir(file)  #是否为文件夹路径

os.path.isfile(file)  #是否是文件路径

os.path.islink(file)&&os.path.ismount(file)#linux上的link和mount

使用os.path模块将用户名插入到文件名,用户根目录

printos.path.expanduser("~/pythonrc")   #/home/trade/pythonrc

使用os.path替换文件名中的环境变量
os.environ["USER"] = "trade"   #python根据操作系统自带了很多环境变量,包括"USER";除此之外,还可以自定义环境变量;
printos.path.expandvars("/home/$USER/config")   #/home/trade/config

2.搜索文件系统

使用os.path.walk搜索文件系统

walk 函数会帮你找出一个目录树下的所有文件.它的参数依次是目录名,回调函数,以及传递给回调函数的参数。

#回调函数

deffind_file(arg,dirname,files):

         for file in files:

                   file_path=os.path.join(dirname,file)

                   if os.path.isfile(file_path):

                            print "find file:%s" %file_path

#调用

os.path.walk(r"C:\Users\Administrator\Desktop\4",find_file,())

注释:一定区分os.path.walk()os.walk()os.path.walk()可以用回调函数,os.walk()更常用,如下:

for i in os.walk('/root/python'):

         print i

#返回值,每个目录返回一个三元元祖(路径,文件夹列表,文件列表)

# ('/root/python', ['class', '20120627'], ['expression.py', 'using_sys.py'])

使用os.listdir搜索文件系统(类似ls -al)

for file in os.listdir(directory):

      print file


#返回的结果和ll -al是一样,含隐藏文件。但是不一样的是,返回的文件列表中文件顺序是混乱的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值