Форум сайта python.su
857
NiccolumНадо указать кодировку при открытии файла.
Однако, если он читает комментарии, то выводится левые символы (видимо другая кодировка) Соответственно можно как сделать так, чтобы комментарии открывало в читабельной (вроде ASHII) кодировке или не открывало вообще?
Офлайн
0
doza_andДа. Я хочу данным тренировочным кодом считывать порядковый номер строки, количество символов через пробел и саму строку. Однако при открытии данного файла возникает ошибка, которая, как я понял, касается кодировки, ибо когда я запускаю данный скрипт на питоне 3.4 появляется такая проблема.
В питоне тройные кавычки это не комментарций а многострочный строковый литерал, посему его тоже надо нумеровать. Комментарии начинаются с # и их тоже обычно надо нумеровать. Можно на русском языке озвучить постановку задачи, которую вы решаете приведенным кодом?
0 => 4 :: ‘'’Соответственно как её решить? Либо не читать первые строки , начинающиеся с тройных одинарных или двойных кавычек, либо читать “по русски”
1 => 101 :: Для запуска необходимо выполнить импорт (import CountLinesChars2)
2 => 132 :: и запуск функции с полным именем .py в кавычках (CountLinesChars2.count('CountLinesChars2.py'))
3 => 4 :: ‘'’
4 => 17 :: def count(name):
5 => 19 :: file = open(name)
6 => 91 ::
Офлайн
0
Niccolum, по-русски.
# -*- coding: utf-8 -*- f = open('niccolu') strok=sum(1 for l in open('niccolu')) #print(strok) i=0 while i < strok: for line in f.readlines(): i=i+1 print (i," > ",line)
1 > :: ‘'’
2 >
3 > :: Привет‚ (import CountLinesChars2)
4 >
5 > :: Пока (CountLinesChars2.count('CountLinesChars2.py'))
6 >
7 > :: ‘'’
8 >
9 > :: def count(name):
10 >
11 > :: file = open(name)
12 >
13 > ::
Офлайн
0
Kir@Как я понял проблема таки не в коде, а в кодировке, ибо в IDLE в вашем коде выдаёт следующее:
Niccolum, по-русски.
1 > ''' 2 > Для запуска необходимо выполнить импорт (import CountLinesChars2) 3 > и запуск функции с полным именем .py в кавычках (CountLinesChars2.count('CountLinesChars2.py')) 4 > ''' 5 > def count(name): 6 > file = open(name) 7 > [print(index, '=>' ,len(line), '::', line) for index, line in enumerate(file.readlines())]
Отредактировано Niccolum (Май 6, 2016 09:33:13)
Офлайн
0
Прикрепляю файл чтобы вы поняли что я имею ввиду.
Мб что вместо utf-8 в первой строке написать? Название ‘866’ кодировки есть?
P.S. если в notepad++ выбрать кодировку файла/кириллица/ОЕМ 866 - русский язык сам превращаетсяв дичь уже в файле.
Попробовал добавить кодировку в файл
# -*- coding: OEM 866 -*-
Отредактировано Niccolum (Май 6, 2016 09:46:36)
Прикреплённый файлы:
Точечный рисунок.bmp (647,8 KБ)
Офлайн
857
Офлайн
0
Niccolum
Вчерашний вариант я делал под убунтой.
Сегодня под Win7:
1 > :: ‘'’
2 >
3 > :: Привет‚ (import CountLinesChars2)
4 >
5 > :: Пока (CountLinesChars2.count('CountLinesChars2.py'))
6 >
7 > :: ‘'’
8 >
9 > :: def count(name):
10 >
11 > :: file = open(name)
12 >
13 > ::
Офлайн
0
Kir@Пересохранил файл с помощью notepad++
NiccolumВчерашний вариант я делал под убунтой.Сегодня под Win7:
# -*- coding: utf-8 -*- ''' Для запуска необходимо выполнить импорт (import CountLinesChars2) и запуск функции с полным именем .py в кавычках (CountLinesChars2.count('CountLinesChars2.py')) ''' def count(name): file = open(name) [print(index, '=>' ,len(line), '::', line) for index, line in enumerate(file.readlines())]
# -*- coding: utf-8 -*- f = open('CountLinesChars2.py') strok=sum(1 for l in open('CountLinesChars2.py')) #print(strok) i=0 while i < strok: for line in f.readlines(): i=i+1 print (i," > ",line)
Отредактировано Niccolum (Май 6, 2016 13:00:17)
Прикреплённый файлы:
Точечный рисунок.bmp (647,8 KБ)
Офлайн
0
Niccolum
Вы что “Пересохранили с помощью notepad++”?
Код программы?
Или злосчастный txt файл?
Вот так попробуйте:
f = open(u'niccolu')
Офлайн
0
В вашем случае попробовал следующее:
#Файл niccoly.py
# -*- coding: utf-8 -*- f = open(u'niccolu') strok=sum(1 for l in open(u'niccolu')) #print(strok) i=0 while i < strok: for line in f.readlines(): i=i+1 print (i," > ",line)
Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> f = open(u'niccolu') FileNotFoundError: [Errno 2] No such file or directory: 'niccolu'
Офлайн