in olddocs/gen_edot_col_components/tools.py [0:0]
def find_files_with_substring(directory, substring):
matching_files = []
# Compile the substring into a regular expression for case-insensitive search
pattern = re.compile(re.escape(substring), re.IGNORECASE)
# Use pathlib to iterate over all files in the directory and subdirectories
for file_path in Path(directory).rglob('*'):
if file_path.is_file():
try:
with open(file_path, 'r', encoding='utf-8') as file:
content = file.read()
if pattern.search(content):
matching_files.append(str(file_path))
except (UnicodeDecodeError, PermissionError) as e:
# Skip files that can't be read due to encoding issues or permission errors
print(f"Skipping {file_path}: {e}")
return matching_files