У меня огромные проблемы с передачей команд CMD из Python.
Сначала я открываю процесс CMD:
cmdprocess = subprocess.Popen("cmd",
stdin = subprocess.PIPE,
stdout = subprocess.PIPE,
stderr = subprocess.PIPE)
Затем я что-то делаю, например:
for i in range(500):
#time.sleep(1)
command = ("dir > " + os.path.join("C:\\", str(i)) + "\r\n").encode("utf-8")
print(command)
cmdprocess.stdin.write(command)
Итак, предполагается создать 500 небольших текстовых файлов в папке.Я протестировал его в Python 3.2 x64 и 3.2 x86, и результат для обоих: он насчитывает примерно 250-350 в оболочке Python, а затем просто останавливается.Нет ошибок, ничего.Затем в указанной папке находятся файлы 1-80.
Теперь я подумал, что, возможно, Python слишком быстр, и поэтому он имел sleep(1)
в течение 1 секунды между командами.Теперь он насчитывает около 200, прежде чем первый файл появится в папке!и затем останавливается на отметке 270.
Что здесь происходит и как я могу заставить CMD немедленно выполнить команду?