3
def replace(file_path, pattern, subst):
file_path = os.path.abspath(file_path)
#Create temp file
fh, abs_path = mkstemp()
new_file = open(abs_path,'w')
old_file = open(file_path)
for line in old_file:
new_file.write(line.replace(pattern, subst))
#close temp file
new_file.close()
close(fh)
old_file.close()
#Remove original file
remove(file_path)
#Move new file
move(abs_path, file_path)
파일의 문자열을 바꾸는 기능이 있습니다. 그러나 패턴이 발견 된 전체 라인을 대체하는 좋은 방법을 알 수는 없습니다.파이썬 패턴 찾기 및 전체 라인 바꾸기
예를 들어, "John은"하루 종일 열심히 일한 "패턴"John "을 사용하여"Mike did not work hard "라는 줄 바꿈을 대체하려고합니다.
내 현재 함수를 사용하면 전체 선을 바꾸기 위해 전체 선을 패턴으로 작성해야합니다. 이 속으로
for line in old_file:
new_file.write(line.replace(pattern, subst))
:
당신이 그것을 수행하는 방법을 묻는 이 코드를 변경하지 않고? 당신이이 코드를 바꿀 수 있다면, 나는 대답을 이해할 수있을 것입니다. – kojiro