重複の可能性:
複数行のコメントを見つけるための Python 3 正規表現
これを行う方法についていくつかの入力が必要です。入力に本当に感謝します。他の投稿を見ましたが、私の要件に一致するものはありませんでした。
Pythonでファイルから行を削除する方法 Pythonでテキストファイルから行を 削除する
提供された入力文字列に基づいて、ファイル内の複数行のコメントを照合する必要があります。
例:-
ファイル「test.txt」に次のコメントがある場合、inputstring="This is a test, script written" の場合、このコメントをファイルから削除する必要があるとします。
import os
import sys
import re
import fnmatch
def find_and_remove(haystack, needle):
pattern = re.compile(r'/\*.*?'+ needle + '.*?\*/', re.DOTALL)
return re.sub(pattern, "", haystack)
for path,dirs,files in os.walk(sys.argv[1]):
for fname in files:
for pat in ['*.cpp','*.c','*.h','*.txt']:
if fnmatch.fnmatch(fname,pat):
fullname = os.path.join(path,fname)
with open(fullname, "r") as f:
find_and_remove(f, r"This is a test, script written")
エラー:-
Traceback (most recent call last):
File "comment.py", line 16, in <module>
find_and_remove(f, r"This is a test, script written")
File "comment.py", line 8, in find_and_remove
return re.sub(pattern, "", haystack)
File "/usr/lib/python2.6/re.py", line 151, in sub
return _compile(pattern, 0).sub(repl, string, count)
TypeError: expected string or buffer