Форум сайта python.su
Доброго времени суток!
При написании кода своего проекта мне понадобилось использовать функцию os.system для выполнения некоторых задач, а точнее для копирования файлов из одной директории в другую.
Данная функция после своего выполнения возвращает строку (а точнее выводит, т.е. не return а print) в консоль. В данной строке прописывается примерно следующее: “Скопировано файлов: N”.
Несмотря на то, что у меня сам код приложения находится в pyw-файле, строка пытается вывестись и поэтому на какое-то мгновение у меня “моргает” окно моего приложения.
Подскажите, пожалуйста, что можно сделать, чтобы предотвратить это “моргание”.
Отредактировано Art-master (Май 4, 2014 21:17:43)
Офлайн
Как гласит дока, вместо 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)
Офлайн
Art-master
Для копирования файлов можно воспользоваться модулем shutil, тогда не придется вызывать внешнюю программу - что лучше скажется на вашей программе.
Офлайн
valentjediИ последнее замечание. Это не окно вашей программы это окно запускаемого процесса.
у меня “моргает” окно моего приложения
Офлайн