Очень простой подход к этому виду проблемы должен использовать много случайных элементов, загружают список.
В псевдокоде это было бы похоже на это:
do
r1 = randomPositionInList()
r2 = randomPositionInList()
swap elements at index r1 and index r2
for a certain number of times
Yep:
shell]$ find /my/source -name "*.py" -type f -exec cat {} + | wc -l
Job's a good 'un.
Начало с ответом Эйдена и с небольшой помощью в моем собственном вопросе , я закончил с этим ужасным беспорядком:
# find the combined LOC of files
# usage: loc Documents/fourU py html
function loc {
#find $1 -name $2 -type f -exec cat {} + | wc -l
namelist=''
let i=2
while [ $i -le $# ]; do
namelist="$namelist -name \"*.$@[$i]\""
if [ $i != $# ]; then
namelist="$namelist -or "
fi
let i=i+1
done
#echo $namelist
#echo "find $1 $namelist" | sh
#echo "find $1 $namelist" | sh | xargs cat
echo "find $1 $namelist" | sh | xargs cat | wc -l
}
, который позволяет вам указать любое количество расширений, которые вы хотите сопоставить. Насколько я могу судить, он дает правильный ответ, но ... Я подумал, что это будет однострочный текст, иначе я бы не начал с bash, и он как бы вырос оттуда.
Я ' Я уверен, что те, кто более осведомлен, чем я, могут улучшить это, поэтому я собираюсь поместить это в вики сообщества.
Получить команду wc в Windows с помощью GnuWin32 ( http://gnuwin32.sourceforge.net/packages/coreutils.htm )
wc * .py
Вы можете посмотреть CLOC - он не специфичен для Django, но поддерживает Python. Он может показать количество строк для фактического кода, комментариев, пустых строк и т. Д.