python文件夾遍歷,文件操作,獲取文件修改創建時間

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
 
 在CODE上查看代碼片派生到我的代碼片
  1. #! /usr/bin/env python  
  2. # coding:utf-8  
  3.   
  4. import os,datetime  
  5.   
  6. base_dir = 'c:/'  
  7. list = os.listdir(base_dir)  
  8.   
  9. filelist = []  
  10. for i in range(0, len(list)):  
  11.     path = os.path.join(base_dir,list[i])  
  12.     if os.path.isfile(path):  
  13.         filelist.append(list[i])  
  14.           
  15. for i in range(0, len(filelist)):  
  16.     path = os.path.join(base_dir, filelist[i])  
  17.     if os.path.isdir(path):  
  18.         continue  
  19.     timestamp = os.path.getmtime(path)  
  20.     print timestamp  
  21.     ts1 = os.stat(path).st_mtime  
  22.     print ts1  
  23.       
  24.     date = datetime.datetime.fromtimestamp(timestamp)  
  25.     print list[i],' 最近修改時間是: ',date.strftime('%Y-%m-%d %H:%M:%S'
    
    



  1. import os,time   
  2. time.ctime(os.stat("c:/1.txt").st_mtime) #文件的修改時間   
  3. time.ctime(os.stat("c:/1.txt").st_ctime) #文件的創建時間  
  4.   
  5.   
  6. time.localtime(os.stat("F:/log.txt").st_mtime) #文件訪問時間 適合計算時間  
  7.   
  8. ModifiedTime=time.localtime(os.stat("F:/log.txt").st_mtime) #文件訪問時間  
  9. y=time.strftime('%Y', ModifiedTime)  
  10. m=time.strftime('%m', ModifiedTime)  
  11. d=time.strftime('%d', ModifiedTime)  
  12. H=time.strftime('%H', ModifiedTime)  
  13. M=time.strftime('%M', ModifiedTime)  
  14.   
  15. d2=datetime.datetime((int)y,(int)m,(int)d,(int)H,(int)M)  
  16. 同理d1....  
  17.   
  18. (d1-d2).seconds #爲d1與d2相隔十分鐘  
  19.   
  20.   
  21.   
  22. 參考:  
  23. 使用datetime模塊可以很方便的解決這個問題,舉例如下:  
  24. >>> import datetime  
  25. >>> d1 = datetime.datetime(2005216)  
  26. >>> d2 = datetime.datetime(20041231)  
  27. >>> (d1 - d2).days  
  28. 47  
  29. 上例演示了計算兩個日期相差天數的計算。  
  30. import datetime  
  31. starttime = datetime.datetime.now()  
  32. #long running  
  33. endtime = datetime.datetime.now()  
  34. print (endtime - starttime).seconds  
  35. 上例演示了計算運行時間的例子,以秒進行顯示。  
  36. >>> d1 = datetime.datetime.now()  
  37. >>> d3 = d1 + datetime.timedelta(hours=10)  
  38. >>> d3.ctime()  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章