Я работаю с скриптами bash и хотел бы встроить фрагмент Python внутри функции bash.
Итак, я получил этот рабочий фрагмент Python, который просто читает из stdin и анализирует его, чтобы получить заголовок записи [0]:
import feedparser, sys
root = feedparser.parse(sys.stdin.read())
print root['entries'][0].title
И все кажется прекрасным:
$ curl -sf https://feedforall.com/sample.xml | python xmlparser.py
RSS Solutions for Restaurants
IndexError возникает, когда я выполняю этот путь:
$ curl -sf https://feedforall.com/sample.xml | python - <<EOF
import feedparser, sys
root = feedparser.parse(sys.stdin.read())
print root['entries'][0].title
EOF
Получил этот IndexError:
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
IndexError: list index out of range
Кажется, что root ['entries'] в этом случае возвращает пустой список.. и я не знаю почему.
Спасибо за помощь
Работал так хорошо:
$ curl -sf https://feedforall.com/sample.xml | python <( cat <<EOF
import feedparser, sys
root = feedparser.parse(sys.stdin.read())
print root['entries'][0].title
EOF
)