Press "Enter" to skip to content

python中os和os.path模块

python中os.path模块用法

其它函数:
os.path.isabs() 指定路径是否为绝对路径
os.path.isdir() 指定路径是否存在且为一个目录
os.path.isfile() 指定路径是否存在且为一个文件
os.path.islink() 指定路径是否存在且为一个符号链接
os.path.ismount() 指定路径是否存在且为一个挂载点 ???
os.path.samefile() 两个路径名是否指向同一个文件
os.path.exists() 检验路径是否真实存在

文件处理:
os.listdir() 列出目录下的所有文件和文件夹,返回一个列表
os.mkdir(‘test’) 创建单个目录(如果目录已存在,会产生OSError错误)
os.makedirs(r’c:\python\test’) 创建多级目录
os.remove() 删除文件,如果文件不存在,或者没有权限,则会产生错误
os.rmdir() 删除目录(如果目录中有文件会产生OSError错误,删除非空目录使用shutil.rmtree(”))
os.removedirs() 删除多个目录
os.rename(old, new) 重命名
os.name 指示你正在使用的平台,Windows,它是’nt’,而对于Linux/Unix用户,它是’posix’
os.chdir() 改变工作目录
os.getenv() 与os.putenv() 设置和读取环境变量
os.exit() 退出当前进程

文件信息:
import os
import time
os.path.basename() #获取文件名
os.path.dirname() #获取路径名
os.path.getsize(file) #获取文件大小(字节为单位)
os.path.getatime(file) #获取最近访问时间1318921018.0 ( 浮点型秒数)
os.path.getctime(file) #获取文件创建时间
os.path.getmtime(file) #获取最近修改时间
time.gmtime(os.path.getmtime(file)) #以struct_time形式输出最近修改时间
os.path.abspath(file) #获取绝对路径’/Volumes/Leopard/Users/Caroline/Desktop/1.mp4′
os.path.normpath(file) #获取’/Volumes/Leopard/Users/Caroline/Desktop/1.mp4′

一些实际的用法:

创建文件:
os.mknod("test.txt")        创建空文件
fp = open("test.txt",w)     直接打开一个文件,如果文件不存在则创建文件

获取扩展名:
>>> os.path.splitext('/Volumes/Leopard/Users/Caroline/Desktop/1.mp4')[1:]
('.mp4',)
>>> os.path.splitext('/Volumes/Leopard/Users/Caroline/Desktop/1.mp4')[1]
'.mp4'

获取文件名:
>>> print os.path.basename(r'/root/hahaha/123.txt')
123.txt
>>> print os.path.dirname(r'/root/hahaha/123.txt')
/root/hahaha

判断目录或文件的存在:
>>> os.path.exists('/root/1.py')
True
>>> os.path.exists('/root/')
True
>>> os.path.exists('/root')
True
>>> os.path.isdir('/root')
True

改变工作目录:
>>> os.chdir('/home')
>>> os.getcwd()
'/home'

字符串分割:
>>> '/usr/bin/env'.split('/')
['', 'usr', 'bin', 'env']

获取文件夹大小(Python2.x):
import os  
from os.path import join, getsize  
  
def getdirsize(dir):  
   size = 0L  
   for root, dirs, files in os.walk(dir):  
      size += sum([getsize(join(root, name)) for name in files])  
   return size  
  
if __name__ == '__main__':
   filesize = getdirsize('/tmp')  
   print 'There are %.3f' % (filesize/1024/1024), 'Mbytes in /tmp' 

获取文件夹大小(Python3.x):
import os  
from os.path import join, getsize  
  
def getdirsize(dir):  
   size = 0  
   for root, dirs, files in os.walk(dir):  
      size += sum([getsize(join(root, name)) for name in files])  
   return size  
  
if __name__ == '__main__':
   filesize = getdirsize('/tmp')  
   print ('There are ' + str(filesize/1024/1024) + 'Mbytes in /tmp')
Leave a Reply

Your email address will not be published. Required fields are marked *