GeekTool только один раз повторяет мой цикл Python

Я создал очень простой скрипт с PRAW, который печатает 10 лучших заголовков ссылок на reddit.com/r/worldnews. Я хочу, чтобы это работало с GeekTool, но отображается только следующее:

"ТОП 10 НОВОСТЕЙ НА REDDIT

1 НАЗВАНИЕ НОВОСТЕЙ

2 "

Я не знаю, почему это происходит, поскольку при запуске сценария непосредственно из командной строки у меня не возникает никаких проблем.

Вот скрипт Python:

import praw

def main():
    subreddit = r.get_subreddit('worldnews')
    x = 1
    print "TOP 10 NEWS ON REDDIT"
    print '' 
    for submission in subreddit.get_hot(limit=10):
        print x, submission.title
        x = x+1
        print ' '

if __name__ == "__main__":
    user_agent = "Top10 0.1 by /u/alexisfg"
    r = praw.Reddit(user_agent=user_agent)
    main()

1 ответ

Решение

Если вы поместите попытку... за исключением основной функции для печати любых исключений, вы получите следующее сообщение об ошибке:

ascii codec can't encode character u'\u2019' in position 12: ordinal not in range(128)

Так что это проблема кодирования - некоторый символ во втором заголовке не входит в диапазон ASCII, который python/Geektool использует в качестве кодировки по умолчанию. Вы можете обойти это, явно зашифровав строку заголовка с помощью .encode('utf-8'),

Другие вопросы по тегам