暂存-说明文档(部分)
This commit is contained in:
54
scripts/fix_ini_files.py
Normal file
54
scripts/fix_ini_files.py
Normal file
@@ -0,0 +1,54 @@
|
||||
import os
|
||||
import glob
|
||||
import difflib
|
||||
|
||||
# Read valid keys
|
||||
valid_keys = set()
|
||||
with open('valid_keys.txt', 'r') as f:
|
||||
for line in f:
|
||||
valid_keys.add(line.strip())
|
||||
|
||||
def process_file(filepath):
|
||||
with open(filepath, 'r') as f:
|
||||
lines = f.readlines()
|
||||
|
||||
new_lines = []
|
||||
changed = False
|
||||
|
||||
for line in lines:
|
||||
stripped = line.strip()
|
||||
# Skip empty lines, metadata sections, or already commented lines with ;
|
||||
if not stripped or stripped.startswith('[') or stripped.startswith(';'):
|
||||
new_lines.append(line)
|
||||
continue
|
||||
|
||||
if '=' in line:
|
||||
parts = line.split('=', 1)
|
||||
key = parts[0].strip()
|
||||
val = parts[1]
|
||||
|
||||
if key in valid_keys:
|
||||
new_lines.append(line)
|
||||
else:
|
||||
matches = difflib.get_close_matches(key, valid_keys, n=1, cutoff=0.8)
|
||||
if matches:
|
||||
new_key = matches[0]
|
||||
new_lines.append(line.replace(key + ' ', new_key + ' ', 1) if key + ' ' in line else line.replace(key + '=', new_key + '=', 1))
|
||||
print(f"{filepath}: Reacted {key} to {new_key}")
|
||||
changed = True
|
||||
else:
|
||||
new_lines.append(';;;' + line)
|
||||
print(f"{filepath}: Commented {key}")
|
||||
changed = True
|
||||
else:
|
||||
new_lines.append(line)
|
||||
|
||||
if changed:
|
||||
with open(filepath, 'w') as f:
|
||||
f.writelines(new_lines)
|
||||
|
||||
for root, dirs, files in os.walk('print_config/prusa_slicer'):
|
||||
for file in files:
|
||||
if file.endswith('.ini'):
|
||||
process_file(os.path.join(root, file))
|
||||
|
||||
Reference in New Issue
Block a user