我经常被要求在文件进入客户端之前删除文件的元数据。我最近被要求为大量的pdf和excel文件做这件事 - 很多人编写脚本似乎是一个很自然的解决方案。
快速谷歌引导我shutil.copyfile(src, dst):
将名为src的文件的内容(无元数据)复制到名为dst的文件中。 dst必须是完整的目标文件名;查看shutil.copy()以获取接受目标目录路径的副本。如果src和dst是相同的文件,则引发Error。目的地位置必须是可写的;否则,将引发IOError异常。如果dst已经存在,它将被替换。使用此功能无法复制特殊文件,如字符或块设备和管道。 src和dst是以字符串形式给出的路径名。
但是,如果我这样做:
.test {
border: 1px solid red;
}
'excel metadata tester_v1.xlsx'是我想要的元数据的文件,文件的元数据(作者,创建日期,修改日期等)仍然存在于'excel metadata tester_v1_stripped.xlsx'中。
我知道我必须遗漏一些明显的东西。有谁知道它是什么?
答案 0 :(得分:1)
import win32com.client as win32com
book = r'file_path'
excel = win32com.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open(book, Local=True)
wb.RemovePersonalInformation = True
wb.Close(SaveChanges=1)
excel.Quit()