Я пытаюсь написать метод, который я могу вызвать в другом скрипте, однако я не могу успешно вызвать скрипты (сценарии) с тем, как я напишите. Это один из сценариев, я пытаюсь позвонить (второй очень похож:Написание метода, который я могу вызвать в отдельном скрипте в python
#!usr/bin/env python
import re
import urllib
from datetime import datetime
from datetime import timedelta
date = datetime.now()
date1 = date + timedelta(days=1)
date2 = date + timedelta(days=2)
class city :
def __init__(self, city_name, link) :
self.name = city_name
self.url = link
self.wind1 = 0
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
position2 = line.rfind('<ul class="stats">')
#String is found in line
if position2 > 0 :
self.wind0 = lines[line_number + 1].split('</strong>')[0].split('style="">')[-1]
break # done with loop, break out of it
return ('c.wind0')
filehandle.close()
m1 = city('Mexico City', 'http://www.accuweather.com/en/mx/mexico-city/242560/daily-weather-forecast/242560?day=2')
m3 = city('Veracruz', 'http://www.accuweather.com/en/mx/veracruz/236233/daily-weather-forecast/236233?day=2')
m5 = city('Tampico', 'http://www.accuweather.com/en/mx/tampico/235985/daily-weather-forecast/235985?day=2')
m7 = city('Nuevo Laredo', 'http://www.accuweather.com/en/mx/nuevo-laredo/235983/daily-weather-forecast/235983?day=2')
m9 = city('Monterrey', 'http://www.accuweather.com/en/mx/monterrey/244681/daily-weather-forecast/244681?day=2')
m11 = city('S. Luis Potosi', 'http://www.accuweather.com/en/mx/san-luis-potosi/245369/daily-weather-forecast/245369?day=2')
m13 = city('Queretaro', 'http://www.accuweather.com/en/mx/queretaro/245027/daily-weather-forecast/245027?day=2')
m15 = city('Laz. Cardenas', 'http://www.accuweather.com/en/mx/lazaro-cardenas/239054/daily-weather-forecast/239054?day=2')
cities = []
cities.append(m1)
cities.append(m3)
cities.append(m5)
cities.append(m7)
cities.append(m9)
cities.append(m11)
cities.append(m13)
cities.append(m15)
Я пытаюсь вызвать этот сценарий и другой сценарий с этим:
#!usr/bin/env python
from script import getCities
from script2 import getWind
cities = getCities()
wind = getWind()
for c in wind :
c.retrieveTemps()
for c in cities :
c.retrieveTemps()
print(c.name,c.high0,c.low0,c.high1,c.low1,c.weather0,c.weather1,c.wind0,c.wind1)
c.wind0 встречается с script2, в то время как все остальные переменные находятся со сценарием 1. Если я импортирую скрипт1 во второй, я получаю ошибку: AttributeError: экземпляр города не имеет атрибута 'wind1', который не имеет атрибута с script2, он связан со сценарием 1. Кажется, игнорировать первый импортируемый сценарий.
Любое предложение s будет оценено. Благодаря!
UPDATE:
Используя свои предложения, плюс что-то еще, я придумал это, и это работает прекрасно.
#!usr/bin/env python
import script1
import script2
wind = script2.getWind()
cities = script.getCities()
for c in cities :
c.retrieveTemps()
for w in wind :
w.retrieveWind()
# iterate over both lists in parallel, zip returns a tuple
for c, w in zip(cities, wind) :
print(c.name,c.high0,c.low0,c.high1,c.low1,c.weather0,c.weather1,c.wind0,w.wind1)
Спасибо всем за помощь!
Вы импортируете 'city', но не' city'. –
Хорошо, я изменил сценарий, чтобы импортировать как город, так и города, но у меня возникает другая проблема, которую я повторил в исходном сообщении. – hunter21188