一、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函数是获取文件或目录创建时间的一个非常方便的函数,可以帮助开发者完成很多有用的操作。