Advertisement
Guest User

Untitled

a guest
Oct 11th, 2021
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.13 KB | None | 0 0
  1. """
  2. Алекс получил от своего друга Никиты из России электронное письмо
  3. с вложенным текстовым файлом (не маленьким – точно больше 100Кб)
  4. и был удивлен его содержимым. Алекс давно знаком с Никитой и знает,
  5. что текст точно на русском языке, что он все пишет в нижнем регистре,
  6. и что Никита принципиально не использует никакие кодировки,
  7. кроме однобайтовых.
  8. Алекс хотел бы определить, какую кодировку Никита использовал
  9. (CP866 (DOS), CP1251 (Windows), KOI8R, ISO-8859-5, cp10007(MacOS)),
  10. и увидеть первые 2048 символов этого файла в кодировке UTF-8.
  11.  
  12. Воспользуйтесь имеющимися данными, напишите программу, которая будет
  13. определять автоматически определять кодировку
  14. и выводить первые 2048 символов этого файла в кодировке UTF-8.
  15. """
  16. #---------------------
  17. """
  18. Открыть файл во всех кодировках и подсчитать в каком случае максимально
  19. число вхождений символа в диапазон а-я
  20. """
  21. encs = set(['cp866',
  22.      'koi8-r',
  23.      'iso8859_5',
  24.      'cp1251',
  25.      'mac_cyrillic'])
  26.  
  27. abc = set('абвгдеёжзийклмнопрстуфхцчшщъыьэюя')
  28. mx = 0
  29. enc = 'aaa'
  30. for e in encs:
  31.     with open('text.txt', encoding=e) as f:
  32.         t = 0
  33.         s = f.read(2048)
  34.         for a in s:
  35.             if a in abc:
  36.                 t += 1
  37.         if mx < t:
  38.             mx = t
  39.             enc = e
  40.  
  41. print(enc)
  42. with open('text.txt', encoding=enc) as f:
  43.     s = f.read(2048)
  44.  
  45. with open('f.txt','w', encoding='utf-8') as fw:
  46.     print(s, file=fw)
  47.  
  48. with open('f.txt', encoding='utf-8') as f:
  49.     print(f.read())
  50.            
  51.        
  52.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement