Как обнаружить версию Mac OS с помощью Python?

XML хорош для того, чтобы хранить данные, которые не полностью структурированы, и Вы обычно хотите обмениваться им с другим приложением. Я предпочитаю использовать базу данных SQL для данных. XML подвержен ошибкам, поскольку можно вызвать тонкие ошибки из-за опечаток или пропуска в самих данных. Некоторые платформы приложения с открытым исходным кодом используют слишком много xml файлов для конфигурации, данных, и т.д. Я предпочитаю иметь его в SQL.

, Так как Вы просите эмпирическое правило, я сказал бы, что использование, XML основывал данные приложения, конфигурацию, и т.д. если Вы собираетесь настроить его однажды и не получать доступ/искать к нему очень. Для активных поисков и updations, его лучшее для движения с SQL.

, Например, веб-сервер хранит данные приложения в XML-файле, и Вы не должны действительно выполнить сложный поиск, обновить файл. Веб-сервер запускается, читает xml файл, и это - это. Таким образом, XML прекрасен здесь. Предположим, что Вы используете платформу как Struts. Необходимо использовать XML, и конфигурации действия не изменяются очень, как только приложение разрабатывается и развертывается. Таким образом, снова XML-файл является хорошим путем. Теперь, если разработанное приложение Вашего Struts позволяет обширные поиски и updations, удаления, то SQL является оптимальным путем.

Offcourse, Вы, конечно, встретите одного или двух разработчиков в своей организации, которые будут петь XML или SQL только и объявлять XML или SQL как единственный способ пойти. Остерегайтесь таких людей и сделайте что 'чувства' прямо для Вашего приложения. Только следуйте за 'технологической религией'.

Думают о вещах как то, как часто необходимо обновить данные, как часто необходимо искать данные. Тогда у Вас будет свой ответ на том, что использовать - XML или SQL.

19
задан Chris Long 22 November 2009 в 00:41
поделиться

3 ответа

>>> import platform
>>> platform.mac_ver()
('10.5.8', ('', '', ''), 'i386')

Как видите, первый элемент возвращаемого кортежа mac_ver - это строка, а не число (сложно превратить '10 .5.8 'в число! -) , но довольно легко преобразовать строку 10.xy в нужные вам числа. Например,

>>> v, _, _ = platform.mac_ver()
>>> v = float('.'.join(v.split('.')[:2]))
>>> print v
10.5

Если вы предпочитаете версию ядра Дарвина, а не версию для MacOSX, к ней также легко получить доступ - используйте строку аналогичного формата, которая является третьим элементом кортежа, возвращаемым platform.uname () .

41
ответ дан 30 November 2019 в 02:52
поделиться

Вы можете проанализировать вывод команды / usr / bin / sw_vers.

1
ответ дан 30 November 2019 в 02:52
поделиться

Если вы хотите запустить команду - например, uname - и получить результаты в виде строки, используйте модуль подпроцесса .

import subprocess
output = subprocess.Popen(["uname", "-r"], stdout=subprocess.PIPE).communicate()[0]
0
ответ дан 30 November 2019 в 02:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: