クリップボード(または引数のファイル)からソースコードを取得し、
置換、
そして、クリップボードに戻す。
from win32clipboard import * import re import sys def get_clip_text(): OpenClipboard() try: return GetClipboardData() finally: CloseClipboard() def set_clip_text(text): OpenClipboard() try: EmptyClipboard() SetClipboardText(text) finally: CloseClipboard() def replace_entities(src): d = { "<":"<", ">":">", '&':"&", '"':""", } def repl(m): return d[m.group()] return re.sub("|".join(map(re.escape, d)), repl, src) def main(): files = sys.argv[1:] if not files: text = get_clip_text() else: text_list = [] for f in files: with open(f) as fp: text_list.append(fp.read()) text = "\n".join(text_list) text = replace_entities(text) set_clip_text(text) if __name__ == "__main__": main()