Optimized string replace to catch utf8 errors

This commit is contained in:
Kevin Veen-Birkenbach 2024-01-02 21:22:26 +01:00
parent ecdc5ce920
commit c7bf51941b

View File

@ -2,18 +2,22 @@ import os
import argparse import argparse
def replace_content(path, old_string, new_string, preview, verbose): def replace_content(path, old_string, new_string, preview, verbose):
try:
with open(path, 'r', encoding='utf-8') as f: with open(path, 'r', encoding='utf-8') as f:
content = f.read() content = f.read()
if old_string in content: if old_string in content:
new_content = content.replace(old_string, new_string) new_content = content.replace(old_string, new_string)
print_verbose(f"Replacing content in: {path}",verbose) print_verbose(f"Replacing content in: {path}", verbose)
if not preview: if not preview:
with open(path, 'w', encoding='utf-8') as f: with open(path, 'w', encoding='utf-8') as f:
f.write(new_content) f.write(new_content)
except UnicodeDecodeError as e:
print_verbose(f"Warning: Unicode decode error encountered in file {path}. Skipping file.", verbose)
def print_verbose(content,verbose): def print_verbose(content,verbose):
if verbose: if verbose:
print(content) print(content)