python路径函操作

#判断是否为文件
os.path.isfile
 
#判断是否为目录
os.path.isdir
 
#返回文件名
os.path.basename(path)
 
#返回文件目录
os.path.dirname(path)
 
#判断文件、目录是否存在
os.path.exists(path)
 
#拼接路径, 以系统分隔符 (os.sep)拼接
os.path.join(path1,path2)
 
#规范化路径,将反斜杠转为斜杠,字母转为小写
os.path.normcase('c:\Test') #'c:/test' 
 
#将路径分为一个元组,以最后一个斜杠为分界线,如果最后一个字符为斜杠,那么返回的第2个元素为空
os.path.split('c:/1/')  #('c:/1', '')
os.path.split('c:/1')  #('c:/', '1')
os.path.split('c:/1/1.txt') #('c:/1', '1.txt')
 
#将路径转换为一个元祖,如果为目录则第二个元素为空,如果文件则第二个元素为文件扩展名
os.path.splitext('c:/1') #('c:/1, '')
os.path.splitext('c:/1/1.txt') #('c:/1', '.txt')
 
#获得模块所在的路径的,这可能得到的是一个相对路径
__file__
 
#获取当前执行主脚本文件路径
sys.argv[0]
 
#获取文件绝对路径
os.path.realpath(__file__) #即使创建了软连接,realpath还可以拿到真正对应的文件
os.path.abspath(__file__)
 
#遍历目录及子目录
#path:待遍历根目录 visit(arg, dirname, names) 遍历目录的函数 dirname目录名,names目录下文件名(也包含目录)列表
#os.path.walk(path, visit, arg) 
 
#os.getcwd()、sys.path[0] (sys.argv[0])和__file__的区别

假设目录结构是:

 /home/work
  |
  [dir] getpath
    |
    [file] path.py
    [dir] sub
      |
      [file] sub_path.py

在/home/work/下面执行python getpath/path.py,path.py调用了sub_path.py

sub_path.py里面与各用法对应的值为:

  • os.getcwd() “/home/work/”,起始执行目录
  • sys.path[0]或sys.argv[0] “/home/work/getpath”,是初始执行的脚本的所在目录
  • os.path.split(os.path.realpath(__file__))[0] “/home/work/getpath/sub”,是__file__所在文件sub_path.py的所在目录
 
posted @ 2015-01-19 16:37  周文洪  阅读(477)  评论(0编辑  收藏  举报