Вы просто забыли удалить строку, которую читаете в цикле:
...
for dirpath, dirnames, filenames in os.walk(line.strip()):
...
Портирование существующего кода к новой среде может быть одной причиной. Часть Вашей бизнес-логики и доменной функциональности может существовать в Python и группе, которая пишет, что код настаивает на том, чтобы использовать Python. Но группа, которая развертывает и поддерживает его, может хотеть managability кластера J2EE для масштаба. Можно обернуть логику в Jython в EAR/войне, и затем группа развертывания просто видит, что другой J2EE связывается, чтобы управляться как все другие пакеты J2EE.
т.е. это - средство иметь дело с несоответствием импеданса.
В Вашей ситуации это не имеет большого количества смысла. Но это не означает, что никогда не делает. Например, если Вы разрабатываете продукт, который позволяет конечным пользователям создавать расширения или плагины, могло бы быть хорошо для этого быть scriptable.
Jython может также использоваться в качестве встроенного языка сценариев в рамках программы Java. Можно найти полезным в какой-то момент записать что-то с созданным на дополнительном языке. При работе с Java Jython является опцией для этого (Groovy - другой).
я главным образом использовал Jython для исследовательского программирования в системах Java. Я мог импортировать части приложения и ввести по абсолютному адресу вокруг API для наблюдения то, что произошло путем вызова вызовов от интерактивной сессии Jython.
Никакая потребность скомпилировать. Возможно, Вы хотите получить что-то прокручивающееся быстрее, чем использование скомпилированного языка, как прототип.
... и можно встроить интерпретатор Jython в приложения. Хорошая функция, я не могу сказать, что использовал ее, но это прохладный, тем не менее.
Python имеет некоторые функции функционального программирования, такие как лямбды. Java не имеет такой функциональности, и некоторые программы было бы значительно легче записать, была ли такая поддержка доступна. Таким образом иногда легче записать код в Python и интегрировать его через Jython что попытаться записать код в Java.
Библиотеки Python;), Например BeautifulSoup - синтаксический анализатор HTML, который принимает неправильную разметку. AFAIK там не является никаким подобным чистым lib Java.
Используя Python больше, чем "синтаксический сахар", если Вы не наслаждаетесь запись (или наличие Вашего IDE генерируют), сотни строк шаблонного кода. Существует преимущество методов Быстрой разработки при использовании динамически типизированных языков, хотя недостаток - то, что оно усложняет API и интеграцию, потому что у Вас больше нет гомогенной кодовой базы. Это может также влиять на обслуживание, потому что не все в Вашей команде любят Python так же как Вы и не будут так же эффективны с ним. Это может быть проблемой.
Я использую Jython для интерактивный тестирование кода Java. Это часто намного быстрее, чем запись тестовых приложений Java или даже любого языка сценариев. Я могу просто играть с методами и видеть, как это реагирует. Оттуда я могу изучить достаточно, чтобы пойти и записать некоторый реальный код или тестовые сценарии.
Аналогия: Почему пьют кофе, когда можно вместо этого выпить воду крана горячей воды и пережевать жареные горькие бобы.:-)
Для некоторых задач, Python просто является на вкус лучше, работает лучше и достаточно быстр (занимает время для пивоварения?). Если Ваша среда программирования или развертывания фокусируется на JVM, Jython позволяет Вам кодировать Python, но не изменяя Ваше развертывание и среду во время выполнения.
Синтаксис Python (используемый Jython) значительно более краток и более быстр для разработки для многих программистов.
, Кроме того, можно пользоваться существующими библиотеками Python в JAVA-приложении.
Некоторые задачи легче на некоторых языках тогда другие. Если бы я должен был проанализировать некоторый файл, я выбрал бы Python over Java моментально.
Быстрый пример (от http://coreygoldberg.blogspot.com/2008/09/python-vs-java-http-get-request.html ):
у Вас есть бэкэнд в Java, и необходимо выполнить, HTTP ПОЛУЧАЮТ resquests.
Исходно:
import java.net.*;
import java.io.*;
public class JGet {
public static void main (String[] args) throws IOException {
try {
URL url = new URL("http://www.google.com");
BufferedReader in =
new BufferedReader(new InputStreamReader(url.openStream()));
String str;
while ((str = in.readLine()) != null) {
System.out.println(str);
}
in.close();
}
catch (MalformedURLException e) {}
catch (IOException e) {}
}
}
В Python:
import urllib
print urllib.urlopen('http://www.google.com').read()
Jython позволяет Вам использовать устойчивость Java и, когда необходимый, ясность Python.
, Что еще? Поскольку Georges сказал бы...