2015-06-19 7 views
1

Мне интересно, как полностью автоматизировать проверку. Я пробовалИспользование python для проверки файла (cleartool)

os.system('cleartool co ' + pathname) 

но все еще предлагает мне написать отзыв о кассе. Добавление дополнительных команд os.system() сразу после не совсем работает - они выполняются только после ввода комментария.

Я рассматриваю использование подпроцесса и, возможно, Popen, но я не совсем понимаю, как они работают из документации, которую я могу найти в Интернете.

Любая помощь будет очень признательна, спасибо!

ответ

1

Если вам не нужно ввести комментарий, простой -nc будет достаточно:

os.system('cleartool co -nc ' + pathname) 

См. cleartool checkout man page.

Если комментарий известен, вы можете добавить его непосредственно (-c xxx)

В обеих случаях контроль становится неинтерактивным, более свита для пакетной обработки.

+0

Спасибо за ответ! Я не совсем уверен, что мне потребуется комментарий, но, пробуя этот код, я получаю небольшое всплывающее сообщение о том, что нужно ввести комментарий, а для меня нажать кнопку «Аборт». – Jon

+0

@Jon Я отредактировал ответ: '-c xxx' или' -nc' означает, что всплывающее окно не будет отображаться – VonC

+0

Линия -c xxx прекрасно работает! Спасибо! К сожалению, строка -nc не предотвращает всплывающее окно. Я думаю, что -c xxx будет достаточно для моих нужд, но я пока не уверен. В любом случае, большое спасибо, вы мне очень помогли. – Jon

1

Вы можете использовать POPEN и общаться, чтобы ввести комментарий после вызова cleartool:

from subprocess import Popen 

p = Popen(['cleartool','co',pathname]) 

p.communicate("comment\n") 
+0

Спасибо за ответ! Это работало лучше, чем все, что я ранее пытался с Popen, но это все еще не совсем трюк. Мне все равно придется вручную вводить мой комментарий. Вы знаете, почему это может быть? – Jon

+0

@Jon, я искал список команд, но нижеприведенный ответ предоставил справочную страницу, вы можете и должны использовать 'subprocess.check_call', передавая список аргументов –

+0

Спасибо за продолжение! Каким будет список аргументов в этом случае? Наверное, это самая сложная вещь для меня. Могу я просто сказать subprocess.check_call ('cleartool co' + pathname, 'comment')? – Jon

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

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