Как разделить строку с shell-командой на отдельные аргументы в виде списка?
Если сделать просто сплит по пробелу то получим то что надо, кроме случаев со вставками текста с пробелами. Например так:
>>> '-arg "I Am Groot"'.split(' ')
['-arg', '"I', 'Am', 'Groot"']
Чтобы учитывать текст в кавычках как единый аргумент можно воспользоваться функцией shlex.split()
Кто читает мой канал давно, уже в курсе.
А что делать, если нужно обратное действие? Объединить аргументы из списка в строку и при этом добавить кавычки в аргумент с пробелами.
Конечно, если вы используете subprocess то он сам всё разрулит. Но если вам нужна именно команда одной строкой, то можно воспользоваться готовой функцией в том же subprocess.
>>> from subprocess import list2cmdline
>>> list2cmdline(['-arg', 'I Am Groot'])
'-arg "I Am Groot"'
Он также позаботится об экранировании уже имеющихся кавычек
>>> list2cmdline(['-arg', 'I Am "Groot"'])
'-arg "I Am \"Groot\""'
А вот так он может "схлопнуть" в команду JSON
>>> list2cmdline(['--json', json.dumps({'key': 'value'})])
'--json "{\"key\": \"value\"}"'
_______________
Возможно кто-то спросит, а зачем соединять аргументы в строку если subprocess сам это сделает а os.system не наш путь?
Мне как-то потребовалось отправлять команду на удалённое выполнение и в API поддерживалось указание команды только строкой. Так что всякое бывает)
#libs#basic
Магнит МСФО 2025 г
♦️выручка ₽3 509,23 млрд (+15,3% г/г) ()
♦️чистый убыток ₽16,65 млрд (против прибыли ₽49,9 млрд годом ранее). В связи с переоценкой валютных депозитов и остатков денежных средств на валютных счетах.
#MGNT
Сайт | Бот | Invest Era
Магнит МСФО 2025 г.: выручка ₽3 509,23 млрд (+15,3% г/г), чистый убыток ₽16,65 млрд (против прибыли ₽49,9 млрд годом ранее) #MGNT
Читать далее
👉https://smartlab.news/i/188296
мы в max
Убыток "Тандер" (операционная дочка Магнита) по РСБУ за 2025 год составил ₽22,47 млрд против прибыли ₽46,42 млрд годом ранее, выручка ₽3,05 трлн (+13% г/г) #MGNT
Ритейлер по итогам 2025 года не получил чистой прибыли впервые более чем за 20 лет существования сети.
Читать далее
👉https://smartlab.news/i/184629
мы в max
Магнит РСБУ 2025 г.:
✔️ выручка ₽412 млн (на уровне прошлого года)
📉 чистая прибыль ₽5,4 млрд (-91,6% г/г) #MGNT
Читать далее
👉https://smartlab.news/i/184144
мы в max
Магнит РСБУ 9 мес 2025 г:
📈 Выручка ₽309,05 млн (+0,1% г/г)
📉 Чистая прибыль ₽4,01 млрд (снижение в 8,7 раза г/г)
Читать далее
👉https://smartlab.news/i/171547
#MGNT
🍏#MGNT
☄️А вот и идея на понедельник:
Сегодня тестируем середину канала снизу.
Для открытия лонга на следующей сессии необходимо закрывать день выше 3230.
Цель - 3339 (скользящая)
Стоп - 3140
☝️И кстати, 💿Нлмк сегодня ракетит, закрепляясь выше уровня канала, о котором писал тут https://t.me/privatka_Kazakova/4297, соответственно и его завтра можно будет лонговать
Не иир
🍏#mgnt
Всем доброго дня !!!🤝🤝🤝🤝
Сразу к идее!
Пару сессии назад закрепились над верхом канала, а сегодня идет обычный ретест сверху и текущие уровни 3241 беру в лонг.
Тэйк - 3351 (скользящая)
Стоп - лосс - 3140 (под минимум пробойной свечи)
Не иир
🍏#mgnt
Всем доброго дня!!!🤝🤝🤝
Сразу к идеи.
Цена на позапрошлой сессии импульсом закрепилась внатри восходящего канала, а на прошлой сессии наблюдаем попытку ретеста сверху вниз, но добоя пока не было.
Жду добоя до низа канала и беру в лонг по 2973.
Тэйк - 3050 (средняя линия канала)
Стоп - лосс (2945).
Не иир