Форум сайта python.su
0
Имеется следующий код(Python 3.2):
#!/usr/bin/env python # -*- coding: utf-8 -*- def ParseByLines(file_path): """ Чтение и анализ содержимого файла Входные данные: file_path - путь к файлу """ # словари с библиотеками, идентификатора, операторами и т.д. libraries={} operators={} variables={} class_var={} functions={} comments =0 ## открываем файл и читаем его построчно file=open(file_path,"r","utf-8") for line in file.readlines(): string=line.replace('\n','') # разбор строки: for index in string: # Комментарии if(string[index]=="#"): commets+=1 break; print("Комментариев в файле: %d"%(comments)) file.close() if __name__ == '__main__': import os # чтение файлов из каталога #directory = "C:\\Code\\Python\\test\\" #files = os.listdir(directory); #for file in files: # file=open(...) # print(line,end='') # ... # file.close() ParseByLines("C:\\Code\\Python\\test\\test.rb")
Отредактировано Relrin (Сен. 20, 2012 19:16:36)
Офлайн
14
Тут есть пару других замечаний.
Если файл для тройки, то стоит писать #!/usr/bin/env python3
“C:\\Code\\Python\\test\\test.rb” -> r“C:\Code\Python\test\test.rb”
Вместо ручного поиска в строке можно char in line
comments += bool('#' in line)
Офлайн
0
odnochlenОшибка возникае в библиотеке на месте:
А строка 23 это какая? Влом редактор открывать.
class IncrementalDecoder(codecs.IncrementalDecoder): def decode(self, input, final=False): return codecs.charmap_decode(input,self.errors,decoding_table)[0]
Отредактировано Relrin (Сен. 20, 2012 19:38:41)
Офлайн
18
file=open(file_path,"r","utf-8")
Офлайн
14
Т.к. ‘#’ в аскии и в утф8 одинаков, я бы открывал в аскии.
Офлайн