Мне нужно исправить вот этот сценарий;
Код: Выделить всё
# Read the original file and write to a new file
input_file = 'input.txt'
output_file = 'output.txt'
with open(input_file, 'rb') as f:
content = f.read()
# Filter out non-UTF-8 characters
cleaned_content = content.decode('utf-8', errors='replace').replace('�','?')
# Split the cleaned content into lines
lines = cleaned_content.splitlines()
# Sort the lines
sorted_lines = sorted(lines)
# Write the sorted lines to a new file
with open(output_file, 'w', encoding='utf-8') as f:
for line in sorted_lines:
f.write(line + '\n')
Коротко говоря, у меня есть сценарий байтового поиска, работающий с отсортированным файлом. Если я сделаю open(file_path, 'r',coding='utf-8', error='replace') как файл:
Это не работает должным образом, поскольку меняет символ, который будет обычно выдавайте UnicodeDecodeError. Представьте, что файл такой
он читает его так.
Код: Выделить всё
a
b
�
d
Я хочу убедиться, что файл не выдаст мне UnicodeDecodeError, потому что все символы, которые могут выдать эту ошибку, заменяются на "?" затем сортируется.
Что бы я ни пробовал, всегда появляются такие странные символы.
Как я могу это сделать?
Подробнее здесь: https://stackoverflow.com/questions/792 ... or-on-utf8
Мобильная версия