2014-06-15 2 views
0

Я пытаюсь получить дату ярлыка. cmd команда, которую я знаю:Получение даты ярлыка с использованием python и p4v

p4 labels -e the_label_name 

действительно дает мне следующее:

Label the_label_name 2014/06/05 00:05:13 'Created by mebel. ' 

Чтобы использовать Python, я написал:

os.system("sc labels -t -e the_label_name") 

и что я получил:

Label the_label_name 2014/06/05 00:05:13 'Created by mebel. ' 

0 

Однако , Если я пишу

label = os.system("sc labels -t -e the_label_name") 

Я понимаю, что

label = 0 

Вы знаете, что мне не хватает?

+0

Как показывает ваш первый пример, возвращаемое значение вызова 'os.system' равно' 0'. Это присваивается 'label'. В отношении [документации] (https://docs.python.org/2/library/os.html#os.system) рассмотрите возможность использования 'subprocess', если вы хотите получить результат процесса. – jonrsharpe

+1

Рассмотрите возможность использования библиотеки P4Python; это делает скрипты Perforce намного проще. –

+0

Вы также можете использовать глобальную опцию -G, которая «заставляет все выходные данные (и пакетный ввод для команд формы с -i) отформатироваться как маршаллированные объекты словаря Python, что чаще всего используется при написании сценариев». См. Http://www.perforce.com/perforce/doc.current/manuals/cmdref/global.options.html. –

ответ

0

Я нашел это:

label = os.popen("sc labels -e the_label_name") 
label = label.read() 

Это фиксированное все ...

0

Согласно документации os.system, возвращаемым значением является статус выхода программы.

Если вы хотите, чтобы получить вывод программы, вы можете использовать функцию check_output из subprocess:

import subprocess 
label = subprocess.check_output("sc labels -t -e the_label_name", shell=True) 

Пример:

>>> import subprocess 
>>> subprocess.check_output("shuf -n 1 /usr/share/dict/words", shell=True) 
>>> 'monkey-pot\n' 
+0

Я пробовал это и получил: «Traceback (последний последний звонок): Файл« », строка 1, in Файл« /org/seg/tools/freeware/python/2.7.1/1/el-5 -x86_64/lib/python2.7/subprocess.py ", строка 530, в check_output process = Popen (stdout = PIPE, * popenargs, ** kwargs) Файл" /org/seg/tools/freeware/python/2.7 .1/1/el-5-x86_64/lib/python2.7/subprocess.py ", строка 672, в __init__ errread, errwrite) Файл" /org/seg/tools/freeware/python/2.7.1/ 1/el-5-x86_64/lib/python2.7/subprocess.py ", строка 1202, в _execute_child raise child_exception OSError: [Errno 2] Нет такого файла или каталога ' – NimrodB

+0

Правильно, вы должны использовать 'shell = true', или передать команду в виде списка строк: '['sc', 'labels', '-t', '-e', 'the_label_name']'. – eskaev

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

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