#python
#python
Вопрос:
Я работаю над кодом, который сравнивает два текстовых файла друг с другом и выводит их в другой текстовый файл. Пока я продолжаю получать ошибку «uncallable unicode» в строке 5. Чего не хватает в моем текущем коде?
enter code here
import glob, os, shutil, time, string
def compare(File1,File2):
with open(File1,'r') as f:
d=set(f.readlines())
with open(File2,'r') as f:
e=set(f.readlines())
with open('C:...results.txt','a') as f:
for line in list(d-e):
f.write(line)
compare(r'C:...original_contours.txt',r'C:...reprojected_contours.txt')
Комментарии:
1. Я не распознаю ошибку uncallable Unicode . Пожалуйста, сообщите точную ошибку, включая трассировку стека.
2. Вероятно, он упомянул
'unicode' object is not callable
3. вероятно, это связано со «специальными» символами в файле. По умолчанию функция open угадывает кодировку на основе пользовательских настроек. Если вы знаете точную кодировку этих файлов, укажите их в open. Кроме того, вы можете открывать файлы в режиме rb (двоичном)
Ответ №1:
Существует модуль под названием difflib
, который поставляется со стандартной библиотекой и имеет ряд вспомогательных классов и функций для различных вариантов использования.
Это стоит проверить.
Ответ №2:
Добавьте encoding='utf8'
в свой код:
with open(File1, 'r', encoding='utf8') as f:
d=set(f.readlines())
...
with open(File2, 'r', encoding='utf8') as f:
e=set(f.readlines())