2010-08-25 5 views
4

Как проект для хобби и как упражнение для обучения, я решил реализовать программные строки сценария для измерения кода в Python.Программные линии измерения кода - включены ли комментарии?

Однако, у меня есть вопрос:

  1. ли комментарии включены в измерение?
  2. Подход, которым я придерживался: открыть файл, прочитать его от начала до конца, подсчитать количество строк. Если комментарии следует игнорировать, пропустите эту строку, иначе продолжайте и увеличивайте счетчик. Так ли это сделано?

Обратите внимание, что я знаю, что многие инструменты существуют и, возможно, лучше, чем мои, (sloccount - один пример), однако я делаю это как программу полного хобби. не

+2

Хотя это не плохая идея для хобби проекта, иметь в виду, что измерения проекта по линиям кода - это как измерение стоимости самолета по его весу. :) –

+0

@Arnis: Я слышал эту цитату, и я понимаю, что это значит :) – user225312

ответ

2

Обычно вы не считаете комментарии в виде строки кода, но это может быть полезной метрикой, поэтому, возможно, вы должны учитывать их количество при анализе файла.

Вам лучше проверить строки, которые не являются пробелами, и заканчивать CRLF без символа продолжения строки. В регулярных выражениях говорят, что означало бы, вы хотите, чтобы избежать очередей, как это (при условии обратного косых черт ваших линии продолжение символов):

\\\s*\n\r 

если вы найдете строку, что не увеличивать счетчик. Конечно, регулярное выражение может различаться в зависимости от того, какой язык (движок) вы используете, а использование регулярного выражения может быть даже не самым подходящим способом - простой механизм состояния может быть лучше.

+0

А я вижу. В этом есть много технических проблем. Я думаю, что если я сделаю свой проект широким, тогда это будет невозможно. Если я придерживаюсь одного языка, я думаю, что смогу сделать его более полным. – user225312

1
  1. Нет
  2. Что делать, если логическая строка кода заворачивают?
+0

@tob: Точно моя точка. Но если я начал проверять это, как, например, в Python, чтобы обернуть длинные строки, если кто-то использовал a \, как бы я это сделал? Таким образом, было бы очень сложно заниматься моей программой. Однако я только что проверил с помощью 'sloccount', а также обрабатывает строки, завернутые в две строки. – user225312

+0

Таким образом, строка, такая как: 'print '1stline' \ 'second line'', обрабатывается как две строки. – user225312

+0

Извините, я не гуру Питона. Я просто попытался ответить на концептуальный аспект вашего вопроса. – tobiasbayer

0

не был, что это возможно с помощью простой команды Баш, используйте эту команду Баш в сценарии Python, импорт зева и команды :)

Смежные вопросы