Art-master
Май 4, 2014 15:07:13
Доброго времени суток!
При написании кода своего проекта мне понадобилось использовать функцию os.system для выполнения некоторых задач, а точнее для копирования файлов из одной директории в другую.
Данная функция после своего выполнения возвращает строку (а точнее выводит, т.е. не return а print) в консоль. В данной строке прописывается примерно следующее: “Скопировано файлов: N”.
Несмотря на то, что у меня сам код приложения находится в pyw-файле, строка пытается вывестись и поэтому на какое-то мгновение у меня “моргает” окно моего приложения.
Подскажите, пожалуйста, что можно сделать, чтобы предотвратить это “моргание”.
valentjedi
Май 4, 2014 21:49:45
Как гласит дока, вместо os.system() следует использовать модуль subprocess.call(). И там можно попробовать перенаправить вывод в null как-то так:
# было
status = os.system("mycmd" + " myarg")
# стало
with open(os.devnull, 'wb') as devnull:
status = subprocess.call("mycmd" + " myarg", stdout=devnull, shell=True)
JOHN_16
Май 4, 2014 23:42:32
Art-master
Для копирования файлов можно воспользоваться модулем shutil, тогда не придется вызывать внешнюю программу - что лучше скажется на вашей программе.
doza_and
Май 5, 2014 20:09:16
valentjedi
у меня “моргает” окно моего приложения
И последнее замечание. Это не окно вашей программы это окно запускаемого процесса.