这篇文章将介绍一款使用 Python 开发的实用工具 - 日期修改器。它可以帮助您轻松修改 Word (.docx) 和 PDF 文档的日期信息,满足日常办公和文档整理的需求。
C:\pythoncode\new\modifyfiledate.py
软件功能
- 支持修改 Word (.docx) 日期信息。
- 允许选择要修改的日期类型,包含“修改日期”和“创建日期”。
- 提供清晰的界面,方便用户选择文件、日期类型和输入目标日期。
- 程序会校验输入的日期格式,确保修改的准确性。
- 操作完成后,软件会弹出消息提示框,告知修改成功与否。
技术实现
日期修改器使用 Python 语言开发,并使用了以下第三方库:
程序通过 wxPython 创建了一个简洁易用的界面,用户可以在其中选择需要修改的文档、日期类型以及输入目标日期。接下来,程序会根据文件格式调用不同的处理函数,分别使用 docx 库来修改相应的日期属性。
软件使用
- 下载并运行日期修改器程序 (需确保已安装 Python 及相关库)。
- 点击“文件选择”按钮,选择要修改日期的 Word 文档。
- 从下拉框中选择要修改的日期类型 (“修改日期” 或 “创建日期”)。
- 在文本框中输入您想要修改成的目标日期,格式为 “yyyy-mm-dd”。
- 点击“修改”按钮,程序将尝试修改文档日期。
- 修改完成后,程序会弹出消息提示框,告知修改成功与否。
注意: 修改后的文档将覆盖原文件,请确保您拥有文件的备份。
拓展:
- 可以考虑添加功能让用户设置是否覆盖原文件。
- 也可以加入批量修改的功能,提高效率。
全部代码:
python">import wx
import os
import datetime
from docx import Document
from PyPDF2 import PdfFileReader, PdfFileWriterclass DateModifierApp(wx.Frame):def __init__(self):super().__init__(parent=None, title='Date Modifier')self.SetSize(400, 300)self.InitUI()def InitUI(self):panel = wx.Panel(self)vbox = wx.BoxSizer(wx.VERTICAL)# 文件选择file_picker = wx.FilePickerCtrl(panel, name='FilePicker') # 设置名称为 'FilePicker'vbox.Add(file_picker, 0, wx.EXPAND | wx.TOP | wx.BOTTOM, 10)# 日期类型选择date_type_choices = ['修改日期', '创建日期']self.date_type_choice = wx.Choice(panel, choices=date_type_choices)vbox.Add(self.date_type_choice, 0, wx.EXPAND | wx.TOP | wx.BOTTOM, 10)# 目标日期输入date_input = wx.BoxSizer(wx.HORIZONTAL)date_label = wx.StaticText(panel, label='目标日期:')date_input.Add(date_label, 0, wx.RIGHT, 10)self.date_input_ctrl = wx.TextCtrl(panel)date_input.Add(self.date_input_ctrl, 1, wx.EXPAND)vbox.Add(date_input, 0, wx.EXPAND | wx.TOP | wx.BOTTOM, 10)# 修改按钮modify_btn = wx.Button(panel, label='修改')modify_btn.Bind(wx.EVT_BUTTON, self.ModifyDate)vbox.Add(modify_btn, 0, wx.ALIGN_CENTER | wx.TOP | wx.BOTTOM, 10)panel.SetSizer(vbox)def ModifyDate(self, event):file_path = self.FindWindowByName('FilePicker').GetPath()date_type = self.date_type_choice.GetStringSelection()target_date_str = self.date_input_ctrl.GetValue()try:target_date = datetime.datetime.strptime(target_date_str, '%Y-%m-%d')except ValueError:wx.MessageBox('请输入正确的日期格式 (yyyy-mm-dd)', '错误', wx.OK | wx.ICON_ERROR)returnif file_path.endswith('.docx'):self.ModifyDocxDate(file_path, date_type, target_date)elif file_path.endswith('.pdf'):self.ModifyPdfDate(file_path, date_type, target_date)else:wx.MessageBox('只支持 .docx 和 .pdf 文件', '错误', wx.OK | wx.ICON_ERROR)def ModifyDocxDate(self, file_path, date_type, target_date):doc = Document(file_path)if date_type == '修改日期':doc.core_properties.modified = target_dateelse:doc.core_properties.created = target_datedoc.save(file_path)wx.MessageBox('文件日期已成功修改', '成功', wx.OK | wx.ICON_INFORMATION)def ModifyPdfDate(self, file_path, date_type, target_date):with open(file_path, 'rb') as file:reader = PdfFileReader(file)writer = PdfFileWriter()for page_num in range(reader.getNumPages()):writer.addPage(reader.getPage(page_num))if date_type == '修改日期':writer.updateInfo({'/ModDate': target_date.strftime('%Y%m%d%H%M%S')})else:writer.updateInfo({'/CreationDate': target_date.strftime('%Y%m%d%H%M%S')})with open(file_path, 'wb') as new_file:writer.write(new_file)wx.MessageBox('文件日期已成功修改', '成功', wx.OK | wx.ICON_INFORMATION)if __name__ == '__main__':app = wx.App()frame = DateModifierApp()frame.Show()app.MainLoop()
代码分析:日期修改器
简介
日期修改器是一款使用 Python 开发的工具,可以帮助用户修改 Word (.docx) 文档的日期信息。
代码结构
- 导入库:
Python
导入必要的 Python 库,包括 GUI 界面库 wxPython、日期处理库 datetime、Word 文档操作库 docx 。import wx import os import datetime from docx import Document from PyPDF2 import PdfFileReader, PdfFileWriter
- 主类:
DateModifierApp
- 初始化方法
__init__()
:- 创建主窗口并设置标题。
- 调用
InitUI()
方法初始化界面元素。
- 界面初始化方法
InitUI()
:- 创建面板并使用垂直布局管理器 (wx.BoxSizer) 进行布局。
- 添加文件选择控件
file_picker
,允许用户选择要修改的文档。 - 添加日期类型选择下拉框
date_type_choice
,提供“修改日期”和“创建日期”两种选项。 - 添加目标日期输入框
date_input_ctrl
,用于输入目标日期。 - 添加“修改”按钮
modify_btn
,触发点击事件时调用ModifyDate()
方法。
- 修改日期方法
ModifyDate()
:- 获取文件路径、日期类型和目标日期。
- 校验目标日期格式,如不正确则弹出错误提示框。
- 根据文件格式调用
ModifyDocxDate()
或ModifyPdfDate()
方法进行修改。
- 修改 Word 文档日期方法
ModifyDocxDate()
:- 使用 docx 库打开文档。
- 根据日期类型修改
core_properties
属性中的相应日期。 - 保存修改后的文档。
- 初始化方法
- 入口函数:
- 创建 wx 应用程序对象
app
。 - 创建主窗口对象
frame
并显示。 - 启动应用程序事件循环
app.MainLoop()
。
- 创建 wx 应用程序对象
结语
日期修改器是一款小巧实用的工具,可以帮助您轻松管理文档的日期信息。如果您有此类需求,不妨尝试使用这款软件。