如何使用python脚本重命名文件?

时间:2011-11-08 13:20:28

标签: python plone filenames archetypes filefield

在我的plone网站上,我在原型对象的文件字段中有数百个文件(pdf,doc,...)。导入过程中出错,所有文件名都丢失了。问题是当有人想打开文件时,由于缺少扩展名,浏览器并不总是建议用浏览器打开它。

用户必须保存文件并添加扩展名才能打开它。

我可以编写一个python脚本来重命名具有扩展名的所有文件,具体取决于文件类型吗?

谢谢。

2 个答案:

答案 0 :(得分:3)

http://plone.org/documentation/manual/plone-community-developer-documentation/content/rename

你在这里所需要的一切:)

重要的部分是:parent.manage_renameObject(id,id +“ - old”)

你可以遍历子对象:

for i in context.objectIds():
 obj = context[i]
 context.manage_renameObject(i, i + ".pdf")

context是放置此脚本的文件夹,即您所有pdf文件夹的文件夹

答案 1 :(得分:2)

标准库函数os.rename(src, dst)可以解决问题。如果你知道扩展应该是什么(例如所有文件都是.pdf),那就是你所需要的。如果您有一个没有扩展名的.doc,.pdf,.jpg,.xls文件的混合包,则需要检查文件内容以使用python-magic之类的内容确定正确的扩展名。

import os

for fn in os.listdir(path='.'):
    os.rename(fn, fn + ".pdf")