一、getctime函數的基本介紹
os.path.getctime函數是Python內置模塊os的一個函數,用於獲取指定路徑文件或目錄的創建時間,返回的是時間戳格式。
import os.path # 獲取文件創建時間並格式化輸出 file_path = 'test.txt' create_time = os.path.getctime(file_path) print('Create Time:', time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(create_time)))
在使用該函數前,首先需要導入Python內置模塊os。
二、getctime函數的注意事項
1. getctime返回的是一個float類型的時間戳,需要通過time模塊的strftime()函數格式化輸出。
import os.path import time # 獲取文件創建時間並格式化輸出 file_path = 'test.txt' create_time = os.path.getctime(file_path) print('Create Time:', time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(create_time)))
2. getctime函數只能獲取文件或目錄的創建時間,無法獲取其修改時間或訪問時間。
在需要獲取修改時間或訪問時間時,分別使用os.path.getmtime()函數和os.path.getatime()函數即可。
# 獲取文件修改時間並格式化輸出 file_path = 'test.txt' modify_time = os.path.getmtime(file_path) print('Modify Time:', time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(modify_time))) # 獲取文件訪問時間並格式化輸出 file_path = 'test.txt' access_time = os.path.getatime(file_path) print('Access Time:', time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(access_time)))
3. getctime函數只能用於獲取本地文件或目錄的創建時間,無法獲取遠程文件的創建時間。
如果需要獲取遠程文件的創建時間,可以使用ftplib模塊或sftp模塊等進行連接,並且使用getctime函數需要注意使用絕對路徑。
三、getctime函數的應用場景
1. 獲取文件創建時間並與當前時間進行比較,判斷文件是否過時或者是否需要備份。
# 獲取文件創建時間並格式化輸出 file_path = 'test.txt' create_time = os.path.getctime(file_path) print('Create Time:', time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(create_time))) # 獲取當前時間並格式化輸出 now_time = time.time() print('Now Time:', time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(now_time))) # 判斷文件是否過時,如果過時則備份 if (now_time - create_time) > 86400: backup_file = file_path + '_' + time.strftime('%Y-%m-%d', time.localtime(create_time)) + '.bak' shutil.copy(file_path, backup_file)
2. 批量處理一組文件,根據文件的創建時間進行排序。
import os import time # 獲取目錄下的所有文件 dir_path = 'data' file_list = os.listdir(dir_path) # 根據文件創建時間進行排序並輸出 create_time_list = [] for file_name in file_list: file_path = os.path.join(dir_path, file_name) create_time = os.path.getctime(file_path) create_time_list.append((create_time, file_name)) create_time_list.sort() for create_time, file_name in create_time_list: print(file_name, time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(create_time)))
3. 統計一組文件中的創建時間分布情況。
import os import time # 獲取要統計的目錄 dir_path = 'data' # 初始化統計數組 time_list = [0] * 24 # 遍歷目錄下的所有文件,並統計各個小時的文件數量 file_list = os.listdir(dir_path) for file_name in file_list: file_path = os.path.join(dir_path, file_name) create_time = os.path.getctime(file_path) hour = time.localtime(create_time).tm_hour time_list[hour] += 1 # 輸出統計結果 for i in range(24): print('%02d:00-%02d:59: %d' % (i, i, time_list[i]))
四、總結
os.path.getctime函數是獲取文件或目錄創建時間的一個非常方便的函數,可以幫助開發者完成很多有用的操作。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/237468.html