Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 16.11.2022
Сообщений: 21

Разделение строки

08.08.2023, 07:55. Показов 913. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Использую в программе скрипты Powershell. Выполнение скриптов возвращает строки по типу:
PowerShell
1
@{CsDNSHostName=computer_name; CsDomain=domain.name; CsUserName=domain\user name; Ram=31,93; FreeRam=8,91; FreeVRAM=12,37; UsedVRAM=36,56; UpTime=Fr, 21 jul 2023 10:46:06}
Как можно грамотно разбить строку, чтобы по итогу я мог получить список по типу:
Python
1
list = ["computer_name", "domain.name", "user name", "Ram=31,93", "FreeRam=8,91", "FreeVRAM=12,37", "UsedVRAM=36,56", "UpTime=Fr, 21 jul 2023"]
Значения из скрипта powershell условные, могут быть любые другие данные (ip, dns, сервера, процессор и так далее в таком духе). Если использовать RegExp, мне кажется медленно будет работать...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.08.2023, 07:55
Ответы с готовыми решениями:

Разделение строки
Зададим правило разделения строки: если кол-во символов – чётно, то в результате разделения строки получим две равные по длине строки; если...

Разделение строки
Помогите пожалуйста Есть такая задача: дан текстовый файл, содержащий переписку, но записана она сплошным текстом. Пример: "Имя...

Разделение строки
text_1 ="Мама мыла раму. Сеня ловил рыбу. Жена мыла посуду. Мама мыла раму. Сеня ловил рыбу. Жена мыла посуду. ".split(".") ...

13
290 / 205 / 68
Регистрация: 18.09.2019
Сообщений: 407
Записей в блоге: 58
08.08.2023, 09:18
Лучший ответ Сообщение было отмечено hctkapdu как решение

Решение

hctkapdu, можно таким незатейливым спообом:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
source_str = (
    "@{CsDNSHostName=computer_name; CsDomain=domain.name; "
    "CsUserName=domain\\user name; Ram=31,93; FreeRam=8,91; "
    "FreeVRAM=12,37; UsedVRAM=36,56; UpTime=Fr, 21 jul 2023 10:46:06}"
    )
print(source_str, '\n')
# типа получили строку от PowerShell
 
result_list = []
if source_str[0:2] == "@{" and source_str[-1] == "}":
    for x in source_str[2:-1].split(";"):
        result_list.append(x.split("=")[1])
    print(result_list)
else:
    print("ERROR! Source string has not native format.")
0
Любознательный
 Аватар для YuS_2
7406 / 2256 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
08.08.2023, 11:07
Цитата Сообщение от hctkapdu Посмотреть сообщение
Как можно грамотно разбить строку, чтобы по итогу я мог получить список по типу
У Вас немного странная выборка получается...
где-то значения:
Цитата Сообщение от hctkapdu Посмотреть сообщение
"computer_name"
а где-то имя=значение:
Цитата Сообщение от hctkapdu Посмотреть сообщение
"FreeRam=8,91"
- по каким критериям будете производить выбор, что именно должно быть в списке?
0
Любознательный
 Аватар для YuS_2
7406 / 2256 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
08.08.2023, 11:12
Лучший ответ Сообщение было отмечено hctkapdu как решение

Решение

если нужны только значения хэштаблицы, то надо просто из powershell передавать только их, примерно так:
0
1 / 1 / 0
Регистрация: 16.11.2022
Сообщений: 21
08.08.2023, 11:26  [ТС]
Цитата Сообщение от YuS_2 Посмотреть сообщение
У Вас немного странная выборка получается
Странная, согласен. Возвращать $_.values кажется более уместным. По итогу просто подгоню как надо в списке. Спасибо
0
290 / 205 / 68
Регистрация: 18.09.2019
Сообщений: 407
Записей в блоге: 58
08.08.2023, 11:28
Цитата Сообщение от YuS_2 Посмотреть сообщение
У Вас немного странная выборка получается...
И точно... Тогда можно так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
source_str = (
    "@{CsDNSHostName=computer_name; CsDomain=domain.name; "
    "CsUserName=domain\\user name; Ram=31,93; FreeRam=8,91; "
    "FreeVRAM=12,37; UsedVRAM=36,56; UpTime=Fr, 21 jul 2023 10:46:06}"
    )
print(source_str, '\n')
# типа получили строку от PowerShell
 
result_list = []
if source_str[0:2] == "@{" and source_str[-1] == "}":
    for x in source_str[2:-1].split(";"):
        result_list.append(
            x.split("=")[1] if x.split("=")[0].strip() in [
                'CsDNSHostName', 'CsDomain', 'CsUserName'
                ] else x.strip()
            )
    print(result_list)
else:
    print("ERROR! Source string has not native format.")
0
1 / 1 / 0
Регистрация: 16.11.2022
Сообщений: 21
08.08.2023, 11:49  [ТС]
Цитата Сообщение от iamvic Посмотреть сообщение
можно таким незатейливым спообом
Спасибо, он не подружился через
Python
1
powershell_command.communicate()[0]


Добавлено через 19 минут
Цитата Сообщение от hctkapdu Посмотреть сообщение
Спасибо, он не подружился через
Наврал. Проверил снова, и Powershell лишние пробелы засунул в конец строки. Работает)). Спасибо Вам за варианты решения. Благодарен Вам.
0
Любознательный
 Аватар для YuS_2
7406 / 2256 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
08.08.2023, 12:18
Цитата Сообщение от hctkapdu Посмотреть сообщение
По итогу просто подгоню как надо в списке.
Зачем подгонять? Если таки нужны пары имя:значение, то можно передавать их, например, через формат json:
PowerShell
1
2
$a = @{CsDNSHostName='computer_name'; CsDomain='domain.name'; CsUserName='domain\user name'; Ram='31,93'; FreeRam='8,91'; FreeVRAM='12,37'; UsedVRAM='36,56'; UpTime='Fr, 21 jul 2023 10:46:06'}
$a|convertto-json
{
"UpTime": "Fr, 21 jul 2023 10:46:06",
"Ram": "31,93",
"CsUserName": "domain\\user name",
"CsDomain": "domain.name",
"FreeVRAM": "12,37",
"FreeRam": "8,91",
"CsDNSHostName": "computer_name",
"UsedVRAM": "36,56"
}
- и выковыривать, что требуется...
0
290 / 205 / 68
Регистрация: 18.09.2019
Сообщений: 407
Записей в блоге: 58
08.08.2023, 13:10
Цитата Сообщение от hctkapdu Посмотреть сообщение
По итогу просто подгоню как надо в списке
Цитата Сообщение от YuS_2 Посмотреть сообщение
Зачем подгонять? Если таки нужны пары имя:значение,
А в итоге надо говорить не о списке (который в питоне list), а о словаре (который dict)
0
1 / 1 / 0
Регистрация: 16.11.2022
Сообщений: 21
08.08.2023, 14:34  [ТС]
Цитата Сообщение от YuS_2 Посмотреть сообщение
Зачем подгонять? Если таки нужны пары имя:значение, то можно передавать их, например, через формат json
Чтобы русифицировать, отсюда мне и нужен список, словарь свою силу тут теряет
0
290 / 205 / 68
Регистрация: 18.09.2019
Сообщений: 407
Записей в блоге: 58
08.08.2023, 15:40
Цитата Сообщение от hctkapdu Посмотреть сообщение
Чтобы русифицировать, отсюда мне и нужен список, словарь свою силу тут теряет
А по какой причине? Технических-то ограничений вроде бы нет:
Python
1
2
3
4
5
6
7
8
9
10
>>> a=dict()
>>> a['english']='Ok'
>>> a['на русском']='всё будет хорошо'
>>> print(a['english'])
Ok
>>> print(a['на русском'])
всё будет хорошо
>>> a.keys()
dict_keys(['english', 'на русском'])
>>>
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
08.08.2023, 16:08
Мммм. А при чем тут GUI ?
0
 Аватар для volodin661
6799 / 2298 / 349
Регистрация: 10.12.2013
Сообщений: 7,924
08.08.2023, 16:27
о как.

ГУЙ обиделся на КУЙ.
( граф.усер.интырфейс; конс.усер.интырфейс )
0
290 / 205 / 68
Регистрация: 18.09.2019
Сообщений: 407
Записей в блоге: 58
08.08.2023, 17:48
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Мммм. А при чем тут GUI ?

Не по теме:

Так сложилось исторически... Модератор-то появится неизбежно - всё поправит, переставит, всех пометит и отметит...

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.08.2023, 17:48
Помогаю со студенческими работами здесь

Разделение строки
Подскажите как поступить(я профан). У меня есть 4 строки из стихотворения, записанные в одну. Мне надо сделать как было. Для начало...

Разделение строки
Добрый день. Помогите разобрать строки, которые записаны в файле и правильно записать все это в новый файл. Строки получаю вот так: ...

Разделение строки
Как разделить строку на символы с помощью цикла for? Строка вводится с клавиатуры.

Разделение строки по двоеточию
Добрый день/вечер. Начал изучать Python и тут столкнулся с проблемой разделения строки. Нужно чтобы строка разделялась знаком...

Разделение строки с разделителем
Есть прочитанная строка в коде вида: 111111:222222 Как сделать чтобы то что до двоеточия было в одной переменной,а то что после в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru