在数字时代,文件的时间戳信息(包括创建日期和修改日期)对于文档管理、版本控制以及知识产权保护等方面都具有重要意义。然而,在某些特定情境下,我们可能需要修改这些时间戳信息,以满足特定的需求或解决特定的问题。本文将介绍有效的方法来修改文件的创建日期和修改日期,旨在帮助用户更好地管理文件时间信息,提高工作效率。
废话不多说 我们直接上活...............
import pywintypes
import win32file
import win32con
import time
在Windows操作系统上,我们可以利用Python的pywin32
扩展库来访问和操作Windows API。这些库提供了与Windows系统深入交互的能力,包括文件系统、注册表、进程管理等。对于修改文件的时间戳,我们将使用pywintypes
、win32file
和win32con
。
-
pywintypes
:这个模块提供了一些与Windows数据类型对应的Python类型,用于在Python和Windows API之间传递数据。 -
win32file
:这个模块提供了对Windows文件系统的低级访问,包括文件的创建、读取、写入、删除以及属性的获取和设置。 -
win32con
:这个模块包含了大量的Windows常量,这些常量在调用Windows API时经常使用。 -
time
:Python的内置模块,提供了各种与时间相关的函数。
new_creation_time = "2022-02-25 16:51:02" ####要改为的时间new_time_struct = time.strptime(new_creation_time, '%Y-%m-%d %H:%M:%S') ####解析为一个时间结构
new_creation_timestamp = time.mktime(new_time_struct) #####时间结构转换为一个时间戳
new_creation_time_windows=pywintypes.Time(new_creation_timestamp) ###转换为windows识别的文件时间格式
# 打开文件
file_handle = win32file.CreateFile(
file_path, ##文件路径
win32con.GENERIC_WRITE, ###访问模式(读、写等)这里使用的写入模式
0, # 不共享
None, ##默认的安全属性
win32con.OPEN_EXISTING, ###创建方式(打开现有、创建新文件等) 这里使用的是打开现有
0,#正常文件属性
None ##无模板文件
)
win32file.SetFileTime(file_handle, new_creation_time_windows,None, None)
-
-
file_handle
:已经打开的文件的句柄。 -
new_creation_time_windows
:一个新的创建时间,应该是一个pywintypes.Time
对象,表示你想要设置的文件的创建时间。 -
None
:表示不修改最后访问时间和最后修改时间。
-
file_handle.close() # 关闭文件
拓展
os.utime(file_path,current_access_time,new_modification_timestamp)) # 修改文件的最后修改时间和保持最后访问时间不变
os.stat(file_path)
current_stats = os.stat(file_path)
current_access_time = current_stats.st_atime##获取当前的最后访问时间
time.localtime(creation_time)##将一个时间戳转换为一个表示本地时间的对象
本人公众号也同时公布