我正在使用line.rfind来查找星期几。我每天运行的脚本,我总是需要在某些html脚本中找到第二天。例如,如果今天是星期五,我需要使用line.rfind在html代码中找到“Saturday”。我尝试了下面的脚本......但是由于显而易见的原因它没有用,因为它试图找到单引号内的所有内容。
#!usr/bin/env python
import urllib
from datetime import datetime
from datetime import timedelta
date = datetime.now()
date1 = date + timedelta(days=1)
class city :
def __init__(self, city_name, link, latitude, longitude) :
self.name = city_name
self.url = link
self.low0 = 0
self.high1 = 0
self.high2 = 0
self.low1 = 0
self.low2 = 0
self.lat = latitude
self.long = longitude
def retrieveTemps(self) :
filehandle = urllib.urlopen(self.url)
# get lines from result into array
lines = filehandle.readlines()
# (for each) loop through each line in lines
line_number = 0 # a counter for line number
for line in lines:
line_number = line_number + 1 # increment counter
# find string, position otherwise position is -1
position0 = line.rfind('title="%(x)" % {"x": date1.strftime("%A")}')
html代码中的确切行,我试图从中抽出一天......
<abbr title="Saturday">Sat</abbr>
我需要找到'title =“星期六”'而不仅仅是“星期六”,因为有时会在这一行之前提到星期几。任何人对如何解决这个问题都有任何想法?任何帮助将非常感激!!谢谢!
编辑 - 添加下几行代码。
# string is found in line
if position0 > 0 :
self.low0 = lines[line_number + 4].split('&')[0].split('>')[-1]
答案 0 :(得分:0)
我猜你的问题是你的字符串替换不是正确的python语法。
>>> from datetime import datetime
>>> date1 = datetime.now()
>>> 'title="%(x)" % {"x": date1.strftime("%A")}'
'title="%(x)" % {"x": date1.strftime("%A")}'
>>> 'title="{}"'.format(date1.strftime("%A"))
'title="Friday"'
无关,但我注意到的另一件事是:
line_number = 0 # a counter for line number
for line in lines:
line_number = line_number + 1 # increment counter
您应该更喜欢:for line_number, line in enumerate(lines):