Найти - Пользователи
Полная версия: проблемы с работой subprocess
Начало » Python для новичков » проблемы с работой subprocess
1
Moi5es
Через некоторое время после запуска скрипт как будто зависает (мигает курсор и дальше процесс не идет; каждый раз в разном месте). Грешу во всём модуль subprocess (возможно, я его неправильно использую). Применил даже time.sleep(10), чтобы дать время для завершения предыдущей операции, но и это не помогло. В чем может быть причина?
import subprocess
import MySQLdb
import time
...
while row:    # данные берутся с БД, всё работает - проверял!
    cmd = ["wmic", "/node:" + row[0], "/user:" + row[1], "/password:" + row[2], "/output:software_"+ row[0] + "_%date:~-4,4%%date:~-7,2%%date:~-10,2%.csv", "product", "get", "InstallDate,InstallLocation,Name,Vendor,Version", "/format:csv"]
    subprocess.call(cmd, shell = True)
    row = cursor.fetchone()
    print(cmd)
    time.sleep(10)
cursor.close()
print ("Done")
doza_and
Moi5es
Грешу во всём
Не грешите. Воспользуйтесь отладчиком и точно определите строку где возникает проблема. Вполне возможно просто в интерпретаторе по очереди выполнять строки из цикла.
Moi5es
doza_and
Воспользуйтесь отладчиком и точно определите строку где возникает проблема. Вполне возможно просто в интерпретаторе по очереди выполнять строки из цикла.
В том то и дело, что цикл выполняется, но в определенный момент IDLE делает вид, что выполняет процесс. Я ждал больше часа, но так цикл и не завершился, хотя должен был отработать за минут 10.
doza_and
Moi5es
но в определенный момент IDLE делает вид
doza_and
и точно определите строку
Ваш один принт ничего не говорит.

В конце концов если не умеете пользоваться отладчиком сделайте
python -m trace --trace a.py >a
, и посмотрите где оно зависло.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB