#python #stdout
#python #стандартный вывод
Вопрос:
Я передаю следующие данные в стандартный вывод стандартного вывода :
aa
a
aaa
aaaaa
[new,aaa] < name of the file with path ]
orem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap
[mod] <name of the file with path
orem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap
Я хочу скопировать только имя файла с путем из python.
if new keyword exists in stdin:
take the filename with path
else
nothing.
Комментарии:
1. Вы рассматривали регулярные выражения? С помощью этого вы можете проверить, соответствует ли строка определенному шаблону, а затем извлечь нужные значения из этого шаблона.
2. Нет смысла читать из стандартного вывода. Что вы на самом деле имеете в виду?
3. Ваш вопрос довольно неясен, вы действительно прочитали его после написания? Название не имеет смысла, но, если я правильно понял, вам, вероятно, нужно регулярное выражение и проверка пути между [new, aaa]
4. @JohnGordon Возможно, они имеют в виду, что другая программа записывает в стандартный вывод и передает его в скрипт python.
Ответ №1:
Вы читаете из stdin, а не из стандартного вывода. Если вы передаете вывод другой программы в скрипт Python, он будет в stdin Python.
Вы можете использовать регулярное выражение для извлечения имени файла.
import re
import sys
regex = re.compile(r'[[^]]*new.*?].*<s*(.*?)s*]')
for line in sys.stdin:
m = regex.search(line)
if m:
filename = m.group(1)
break