Вы сравниваете строки с ==
if (currentText == textString)
Это никогда не будет правдой. Это сравнивает, являются ли строки одним и тем же объектом String. Вы должны использовать равные.
if (currentText.equals( textString) )
Вы также можете проверить DocumentListeners . См. Также Как сравнить строки в Java?
, вы должны сделать:
import subprocess
subprocess.Popen(cmd, stderr=subprocess.STDOUT, stdout=subprocess.PIPE)
# etc.
Popen определяется в модуле подпроцесса
import subprocess
...
subprocess.Popen(...)
Или:
from subprocess import Popen
Popen(...)
Вам следует использовать os.popen (), если вы просто импортируете os .
Если ваш импорт выглядит так:
import os
Тогда вам нужно указать вещи, включенные в ОС, выглядят следующим образом:
os.popen()
Если вы не хотите этого делать, вы можете изменить свой импорт, чтобы он выглядел так:
from os import *
Что не рекомендуется, потому что это может привести к неоднозначности пространства имен (вещи в вашем коде, конфликтующие с вещи, импортированные из других источников.) Вы также можете просто сделать:
from os import popen
Что более понятно и легче читается, чем из импорта ОС *
Когда вы импортируете модуль, его члены не становятся частью глобального пространство имен: вы все равно должны добавить к ним префикс имя модуля.
. Итак, вы должны сказать
import os
process = os.popen(command, mode, bufsize)
В качестве альтернативы вы можете использовать синтаксис from module import names
для импорта объектов в глобальное пространство имен:
from os import popen # Or, from os import * to import everything
process = popen(command, mode, bufsize)
Это выглядит так Открыть из модуля подпроцесса (python> = 2.4)
from subprocess import Popen