Я запускаю скрипт, чтобы разорвать некоторые файлы и удалить файлы rar впоследствии. Я делаю это, запуская команду через оболочку. Я попробовал несколько разных способов заставить сценарий подождать, пока он не распакует файлы, но он по-прежнему продолжается и удаляет файл до того, как он будет использован.python ждать завершения команды оболочки
Я пробовал приведенный ниже код, и это не выход. Я попытался посмотреть, могу ли я заставить wait() работать, но также не повезло.
Любые идеи? работает питон 2,7
EDIT: Я хочу, чтобы скрипт для запуска команды :)
p = subprocess.Popen('unrar e ' + root + '/' + i + ' ' + testfolder,
bufsize=2048, shell=True,
stdin=subprocess.PIPE)
p.stdin.write('e')
p.communicate()
for root, dirs, files in os.walk(testfolder):
for i in files:
print 'Deleting rar files'
os.remove(i)
for i in os.listdir(testfolder):
if os.path.isdir(testfolder + i):
shutil.rmtree(testfolder + i)
если вы ждете команды, вам не нужно 'subprocess' –
Я хотел бы, чтобы мой сценарий запуска команды. –
'os.system (« some command »)' блокирует afaik .... поэтому он должен блокироваться, пока unrar не вернется хотя бы (что я предполагаю, когда он закончен) ... хотя я бы подумал, что subproccess.communicate также блокировка ... Мое предположение заключается в том, что unrar не ждет, пока его закончит, чтобы вернуть код выхода –