技术开发 频道

Python中的文件和目录操作

  二、测试文件类型

  我们知道,文件名、目录名和链接名都是用一个字符串作为其标识符的,但是给我们一个标识符,我们该如何确定它所指的到底是常规文件文件名、目录名还是链接名呢?这时,我们可以使用os.path模块提供的isfile函数、isdir函数和islink函数来达成我们的目标,如下所示:

  print myfile, ’是一个’,

  
if os.path.isfile(myfile):

  
print ’plain file’

  
if os.path.isdir(myfile):

  
print ’directory’

  
if os.path.islink(myfile):

  
print ’link’

  您还可以查找文件的日期及其大小:

  time_of_last_access = os.path.getatime(myfile)

  time_of_last_modification
= os.path.getmtime(myfile)

  size
= os.path.getsize(myfile)

  这里的时间以秒为单位,并且从1970年1月1日开始算起。为了获取以天为单位的最后访问日期,可以使用下列代码:

  import time # time.time()返回当前时间

  age_in_days
= (time.time()-time_of_last_access)/(60*60*24)

  为了获取文件的详细信息,可以使用os.stat函数和stat模块中的其它实用程序来达到目的,如下:

  import stat

  myfile_stat
= os.stat(myfile)

  size
= myfile_stat[stat.ST_SIZE]

  mode
= myfile_stat[stat.ST_MODE]

  
if stat.S_ISREG(mode):

  
print%(myfile)是一个常规文件,大小为 %(size)d 字节’ %\

  vars()

  有关stat模块的详细信息,请参见Python Library Reference。若想测试一个文件的读、写以及执行权限,可以用os.access函数,具体如下所示:

  if os.access(myfile, os.W_OK):

  
print myfile, ’具有写权限’

  
if os.access(myfile, os.R_OK | os.W_OK | os.X_OK):

  
print myfile, ’具有读、写以及执行权限’

  像上面这样的测试代码,对CGI脚本来说非常有用。

0
相关文章