1

私はPythonとgeektoolsで遊んでいて、コードを整理してループを使用する前にスクリプトを機能させていました。

lalalaこれで、メソッドを超えて何も表示されなくなります。

私はgeektools3.0.2でmac10.8.1に取り組んでいます。

#!/usr/bin/python

#Simple script that downloads runescape adventures log
#and outputs it to console
# Ashley Hughes 16/SEP/2012

import sys
import urllib2 #For HTTP access
from time import localtime, strftime #Time data functions
from xml.dom.minidom import parseString #XML parser

def lalala(n):
    i = 0
    while(i <= n):
        xmlTag = dom.getElementsByTagName('description')[i].toxml()
        xmlData = xmlTag.replace('<description>','').replace('</description>','').replace('\t','').replace('\n','')
        #print (str(i) + ": " + xmlData)
        print(xmlData)
        i = i + 1

try:
    f = urllib2.urlopen("http://services.runescape.com/m=adventurers-log/rssfeed?searchName=SIG%A0ZerO")
    #f = urllib.urlopen("http://www.runescape.com/")
except Exception, e:
    print "Could not connect"
    sys.exit(1)
s = f.read()
f.close()

dom = parseString(s)

print strftime("%a, %d %b %Y %H:%M:%S", localtime())
print "Working"
lalala(6)
print "Still working"
sys.exit(0)
4

2 に答える 2

1

コードがGeekToolに「印刷」されているときに、unicode-asciiの問題が発生します。変化する:

xmlTag = dom.getElementsByTagName('description')[i].toxml()

これに:

xmlTag = dom.getElementsByTagName('description')[i].toxml().encode('ascii', 'ignore')

これは、GeekTool3.0.3を使用するMac10.8.1では問題ありません。

http://docs.python.org/howto/unicode.htmlを見てください

于 2012-09-21T10:43:55.850 に答える
0

そのlalala方法はさらに整理することができます:

def lalala(n):
    i = 0
    while(i <= n):
        xmlTag = dom.getElementsByTagName('description')[i].toxml()
        xmlData = xmlTag.replace('<description>','').replace('</description>','').replace('\t','').replace('\n','')
        #print (str(i) + ": " + xmlData)
        print(xmlData)
        i = i + 1

になることができる

def lalala(dom):
    for tag in dom.getElementsByTagName('description'):
        xmlTag = tag.toxml()
        xmlData = xmlTag.replace('<description>','').replace('</description>','').replace('\t','').replace('\n','')
        print(xmlData)

その後、あなたはそれを呼び出すことができます

lalala(dom)

の代わりにlalala(6)

ただし、正直なところ、XMLでテキストタグの置換を行うことは、最初はおそらく悪い計画です。

于 2012-09-21T11:11:44.787 に答える