2013-09-24 6 views
0

Я видел несколько вопросов, подобных этому, но ни один из них действительно не помогает в моей конкретной ситуации. У меня есть скрипт, который перебирает каталог текстовых файлов, каждый из которых имеет одну командную строку в нем, которая должна запускаться через командную строку. Базовая схема выглядит следующим образом:Цикл событий в Python для взаимодействия с CMD

for _, _, files in os.walk(my_directory): 
    for f in files: 
    fo = open(my_directory + f, 'r') 
    command = fo.readlines() 
    os.system(command) 
    #rest of the code... 

Когда я проверить это только один файл он работает нормально, но когда я их все вместе в каталоге, они, похоже, останавливаться на случайных точках в каждой команде. Я думаю, это потому, что они перекрываются и не успевают закончить (конкретная команда - довольно долгий процесс для запуска, около 2 минут каждый). Как я могу убедиться, что каждый вызов os.system проходит полностью, прежде чем переходить к следующему?

+0

os.system не будет продолжаться, пока команда не будет завершена ... так перекрывающиеся команды не ваша проблема –

+0

я не думаю, что это, тем не менее, когда я добавил оператор печати для проверки и он передает команды в os.system() правильно, и когда я вхожу в команды файлов непосредственно в CMD, все они работают. Разве это возможно, что они задерживаются надолго и время от времени или что-то в этом роде? – thnkwthprtls

+0

Я подозреваю, что проблема заключается в том, что readlines возвращает список ... os.system не ожидает списка ... попробуйте что-то вроде 'для cmd в команде: os.system (cmd)' –

ответ

1

os.system не будет продолжаться, пока команда не будет завершена ... так перекрывающиеся команды не ваша проблема

Я подозреваю, что проблема в том, что readlines возвращает список ... os.system не ожидает список. .. попробовать что-то вроде

for cmd in command: os.system(cmd) 

 Смежные вопросы

  • Нет связанных вопросов^_^