在Python中,文件操作主要来自os模块,主要方法如下:
os.listdir(dirname):列出dirname下的目录和文件 os.getcwd():获得当前工作目录 os.curdir:返回当前目录('.') os.chdir(dirname):改变工作目录到dirname
os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false os.path.isfile(name):判断name是不是一个文件,不存在name也返回false os.path.exists(name):判断是否存在文件或目录name os.path.getsize(name):获得文件大小,如果name是目录返回0L
os.path.abspath(name):获得绝对路径 os.path.normpath(path):规范path字符串形式 os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在) os.path.splitext():分离文件名与扩展名 os.path.join(path,name):连接目录与文件名或目录 os.path.basename(path):返回文件名 os.path.dirname(path):返回文件路径
os.remove(dir) #dir为要删除的文件夹或者文件路径 os.rmdir(path) #path要删除的目录的路径。需要说明的是,使用os.rmdir删除的目录必须为空目录,否则函数出错。
os.path.getctime(name) #获取文件的创建时间
os.path.getmtime(name) #获取文件的修改时间
os.stat(path).st_mtime #获取文件的修改时间
os.stat(path).st_ctime #获取文件创建时间
使用os.stat的返回值statinfo的三个属性获取文件的创建时间等 st_atime (访问时间), st_mtime (修改时间), st_ctime(创建时间),例如,取得文件修改时间: >>> statinfo.st_mtime 1201865413.8952832 这个时间是一个Linux时间戳,需要转换一下 使用time模块中的localtime函数可以知道: >>> import time >>> time.localtime(statinfo.st_ctime) (2008, 2, 1, 19, 30, 13, 4, 32, 0) 2008年2月1日的19时30分13秒(2008-2-1 19:30:13)
列出文件夹下修改时间的代码如下:
[python] view plain copy #! /usr/bin/env python # coding:utf-8 import os,datetime base_dir = 'c:/' list = os.listdir(base_dir) filelist = [] for i in range(0, len(list)): path = os.path.join(base_dir,list[i]) if os.path.isfile(path): filelist.append(list[i]) for i in range(0, len(filelist)): path = os.path.join(base_dir, filelist[i]) if os.path.isdir(path): continue timestamp = os.path.getmtime(path) print timestamp ts1 = os.stat(path).st_mtime print ts1 date = datetime.datetime.fromtimestamp(timestamp) print list[i],' 最近修改时间是: ',date.strftime('%Y-%m-%d %H:%M:%S') import os,time time.ctime(os.stat("c:/1.txt").st_mtime) #文件的修改时间 time.ctime(os.stat("c:/1.txt").st_ctime) #文件的创建时间 time.localtime(os.stat("F:/log.txt").st_mtime) #文件访问时间 适合计算时间 ModifiedTime=time.localtime(os.stat("F:/log.txt").st_mtime) #文件访问时间 y=time.strftime('%Y', ModifiedTime) m=time.strftime('%m', ModifiedTime) d=time.strftime('%d', ModifiedTime) H=time.strftime('%H', ModifiedTime) M=time.strftime('%M', ModifiedTime) d2=datetime.datetime((int)y,(int)m,(int)d,(int)H,(int)M) 同理d1.... (d1-d2).seconds #为d1与d2相隔十分钟 参考: 使用datetime模块可以很方便的解决这个问题,举例如下: >>> import datetime >>> d1 = datetime.datetime(2005, 2, 16) >>> d2 = datetime.datetime(2004, 12, 31) >>> (d1 - d2).days 47 上例演示了计算两个日期相差天数的计算。 import datetime starttime = datetime.datetime.now() #long running endtime = datetime.datetime.now() print (endtime - starttime).seconds 上例演示了计算运行时间的例子,以秒进行显示。 >>> d1 = datetime.datetime.now() >>> d3 = d1 + datetime.timedelta(hours=10) >>> d3.ctime()