1

ファイル名のすべてのスペースをアンダースコアに置き換えました.ファイル数は約800でした.同じためにReplace Pioneerを使用しました.しかし問題は、hrefフィールドのこれらのファイル名をどのように置き換えるかです?

4

1 に答える 1

1

最初に思ったのは、UNIX の find コマンドと sed コマンドを使ってみることです。ただし、これを行うには、正規表現の高度な知識が必要であり、単純なワンライナー以上のものになる可能性があります。1 つの既知の文字列を単純に置き換えるのではなく、ファイル名の外側にあるスペースを置き換えないようにする必要があるため、xml パーサーを使用してスクリプトを作成することをお勧めします。

Python でこのようなスクリプトを作成する場合に必要な作業の基本的な概要を次に示します。

1) OSElementTree libimport osをインポートします。2) Python の「 listdir」または「globfrom optparse import OptionParser import xml.etree.ElementTree as ET
」 を使用して、変更する HTML ファイルのリストを取得します。3) 各ファイルについて、変更が必要な属性がどのタグに含まれているかに応じて、すべてのタグまたはタグを取得します。たとえば、次のようにファイル内のすべてのタグを取得できます。imgahrefimg

file = ET.parse(filename)
doc = file.getroot()
imgs = doc.findall('.//img')

4) 最後に、各imgoraタグについて、tagshref属性のすべてのスペースをアンダースコアに置き換えます。

これが役立つことを願っています。あなたの質問を誤解した場合はお知らせください。さらに、あなたが言及したツールまたは同様のツールを使用してこれを解決することは可能かもしれませんが、私はそうは思わず、かなりの量の正規表現が必要になる可能性があります.

于 2012-12-10T20:24:28.663 に答える