0

我正在使用 line.rfind 来查找星期几。我每天运行的脚本,我总是需要在一些html脚本中找到第二天。例如,如果今天是星期五,我需要使用 line.rfind 在 html 代码中查找“星期六”。我尝试了下面的脚本......但由于明显的原因它没有工作,因为它试图在单引号内找到所有内容。

#!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="Saturday"' 而不是 "Saturday",因为有时会在这一行之前提到星期几。有人对如何解决这个问题有任何想法吗?任何帮助将非常感激!!谢谢!

编辑——添加接下来的几行代码。

# string is found in line
if position0 > 0 :
        self.low0 = lines[line_number + 4].split('&')[0].split('>')[-1]
4

1 回答 1

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):

于 2013-04-19T04:43:45.520 回答