파일 내 특정 단어를 다른 단어로 치환할 때 파이썬에서는 replace 를 사용한다.
def replace_in_file(file_path, old_str, new_str):
# 파일 읽어들이기
fr = open(file_path, 'r')
lines = fr.readlines()
fr.close()
# old_str -> new_str 치환
fw = open(file_path, 'w')
for line in lines:
fw.write(line.replace(old_str, new_str))
fw.close()
# 호출: file1.txt 파일에서 comma(,) 없애기
replace_in_file("C:\\test\\file1.txt", ",", "")
** 'r'(read) 모드로 파일을 읽어들인 후 'w'(write) 모드로 치환한 내용을 쓰게 했다.
(읽으면서 동시에 쓰려고 하면 에러가 난다.)
참고로, 파이썬 replace 는 바꿀 횟수를 지정할 수 있다.
line.replace(old_str, new_str, 1) # 바꿀 횟수 1로 지정
위 경우는 line을 앞에서부터 읽다가 처음 나타나는 old_str 한 번만 치환하고 다음으로 넘어간다.
바꿀 횟수를 따로 지정하지 않으면 line 내의 모든 old_str 에 대해 치환한다.
(java 의 replaceAll 과 같은 기능)
만약 line을 뒤에서부터 읽어서 치환하려면 음수(-)로 지정하면 된다.
line.replace(old_str, new_str, -2) # 뒤에서부터 읽어들이면서 old_str 두 개까지 치환
300x250
':: python' 카테고리의 다른 글
python :: 파이썬 딕셔너리(dictionary) <-> json 변환하기, 딕셔너리 출력 포맷 '(홑따옴표) 대신 "(쌍따옴표) 로 나타내기 (2) | 2021.06.29 |
---|---|
python :: 파이썬 logging 활용하여 일단위 로그 파일 생성하기 (feat. 로깅이란) (3) | 2021.06.28 |
python :: 파이썬 requests 로 REST API 호출하기 (2) | 2021.06.21 |
python :: 파이썬 파일 복사 shutil.copy 속도 빠르게 향상시키기 (4) | 2021.06.17 |
python :: 파이썬 파일/폴더 복사 shutil copy, copy2, copyfile, copytree (2) | 2021.06.16 |