디렉토리의 모든 HTML 파일에서 이 Python 스크립트를 어떻게 실행할 수 있습니까? [복사]

디렉토리의 모든 HTML 파일에서 이 Python 스크립트를 어떻게 실행할 수 있습니까? [복사]

파이썬 스크립트가 있습니다

$ cat ~/script.py
import sys
from lxml import etree
from lxml.html import parse
doc = parse(sys.argv[1])
title = doc.find('//title')
title.text = span2.text.strip()
print etree.tostring(doc)

다음과 같은 명령을 실행하여 단일 파일에서 스크립트를 실행할 수 있습니다.

$ python script.py foo.html > new-foo.html

~/webpage내 문제는 하위 디렉터리에 수백 개의 파일이 흩어져 있는 디렉터리가 있다는 것입니다. 이 모든 HTML 파일에서 실행 .html하고 싶습니다 . ~/script.py어떻게 해야 하나요?

.html다음 명령을 실행하면 모든 파일을 나열 할 수 있다는 것을 알고 있습니다.~/webpage/

$ find ~/webpage/ -name "*.html"

하지만 이 목록을 사용하여 스크립트를 실행하는 방법을 잘 모르겠습니다.

답변1

-exec명령 사용find

find ~/webpage/ -name "*.html" -exec sh -c 'python script.py {} > new-{}' \;

일부 버전의 경우 다음을 수행해야 할 수도 있습니다.

find ~/webpage/ -name "*.html" -exec sh -c 'python script.py $0 > new-$0' {} \;

답변2

for 루프를 사용하여 디렉터리의 파일을 반복해 볼 수 있습니다.

for f in *.html; do python script.py f > new-"$f".html; done

관련 정보