Как проанализировать вывод справки по команде оболочки в читаемый формат Json в PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как проанализировать вывод справки по команде оболочки в читаемый формат Json в Python

Сообщение Anonymous »

Работаю над проектом по автоматизации определенного процесса установки операционной системы как над своим собственным хорошим проектом. Я начал использовать фреймы данных pandas для организации определенных данных в таблицы, и с помощью третьих лиц мне удалось использовать эти фреймы данных в меню приложений для отправки данных в функции. Сейчас я пытаюсь перевернуть данные командной строки, такие как

Код: Выделить всё

cryptsetup --help
чей вывод аналогичен

Код: Выделить всё

Help options:
-?, --help                            Show this help message
--usage                           Display brief usage
-V, --version                         Print package version
--active-name=STRING              Override device autodetection of dm device to be reencrypted
--align-payload=SECTORS           Align payload at  sector boundaries - for luksFormat
--allow-discards                  Allow discards (aka TRIM) requests for device
-q, --batch-mode                      Do not ask for confirmation
--cancel-deferred                 Cancel a previously set deferred device removal
-c, --cipher=STRING                   The cipher used to encrypt the disk (see /proc/crypto)`
в читаемый формат Json, чтобы реализовать его в фрейме данных pandas, который будет использоваться в качестве меню. Другими словами, мне нужно, чтобы формат данных json мог использоваться json.loads для создания меню перечисленных параметров, содержащего сокращенный параметр, более длинный параметр и информацию о параметрах.
Преобразование вывода в Json было моей первой мыслью о решении проблемы и кажется лучшим вариантом; чтобы найти способы написания некоторых серий регулярных выражений с помощью sed и awk, которые могли бы анализировать данные командной строки --help во что-то читаемое в формате JSON. Я также пытался просто использовать pandas read_csv, например

Код: Выделить всё

def cryptsetup_help():
process = subprocess.Popen(["cryptsetup --help"], shell=True, stdout=subprocess.PIPE)
process_list = process.communicate()[0]
process_list_output = process_list.decode('utf-8')
names = ['Help', 'options', ' ']
df = pd.read_csv(io.StringIO(process_list_output), header = 2, names=['Help', 'options:', ' '], usecols = ['Help', 'options:', ' '], nrows=100)
print(df)
однако это приводит к той же невозможности парсинга. Я не могу точно сопоставить ни запятую, ни «--», поскольку они не указаны для каждой подходящей строки. Любая помощь будет оценена по достоинству. В реальной таблице можно указать только два столбца или все три любым возможным способом, а остальное я, вероятно, смогу выяснить.

Подробнее здесь: https://stackoverflow.com/questions/785 ... -in-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»