4

私のploneサイトでは、アーキタイプオブジェクトのファイルフィールドに何百ものファイル(pdf、doc、...)があります。インポート中に問題が発生し、すべてのファイル名が欠落しています。問題は、誰かがファイルを開きたいときに、拡張子がないために、ブラウザが常にビューアでファイルを開くことを提案するとは限らないことです。

ユーザーはファイルを保存し、拡張子を追加して開く必要があります。

ファイルタイプに応じて拡張子が付いたすべてのファイルの名前を変更するPythonスクリプトを作成できますか?

ありがとうございました。

4

2 に答える 2

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 があるフォルダーです。

于 2011-11-08T13:31:00.187 に答える
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")
于 2011-11-08T14:06:07.830 に答える