2012-10-30 37 views
0

當我將機場設置爲一個變量時,我可以獲取文本文件。但是,如何獲取多個機場代碼的文本文件並顯示信息?使用具有多個變量的字符串打開文件

airport = 'KSFO, KSJC, KOAK' 

for metar in urlopen('http://weather.noaa.gov/pub/data/observations/metar/stations/%s.TXT' %airport): 
     metar = metar.decode("utf-8") 
     if "%s" %airport in metar: 
      print metar 
+1

你需要拆就'字符串逗號(,)'並使用獲得的列表中的單個元素。 –

回答

2

如果你的目標是獲取天氣對於每個機場的觀察,您可以使用:

from urllib import urlopen 
airports = 'KSFO, KSJC, KOAK' 

for airport_code in airports.split(","): 
    for metar in urlopen('http://weather.noaa.gov/pub/data/observations/metar/stations/%s.TXT' % airport_code.strip()): 
     metar = metar.decode("utf-8") 
     print metar 

For我的輸出是:

2012年10月30日07:56 KSFO 300756Z 29005KT 10SM FEW001 13/11 A3006 RMK AO2 SLP178 T01280111 402110117

2012年10月30日07:53 KSJC 300753Z AUTO 00000KT 10SM CLR 10/A3005 RMK AO2 SLP175 T0100 402060089 $

二〇一二年十月三十零日08:14 KOAK 300814Z 06003KT 10SM OVC004 13/12 A3007 RMK AO2

+0

你應該縮進最後兩行。 – iabdalkader

1
airport = 'KSFO, KSJC, KOAK' 

for airports in airport.split(', '): 
    for metar in urlopen('http://weather.noaa.gov/pub/data/observations/metar/stations/%s.TXT' %airports): 
      metar = metar.decode("utf-8") 
      if "%s" %airports in metar: 
       print metar 

Basiclly我們分開airport變量,其中,(一個逗號和一個空格)爲分隔成三個不同的變量有:

`airport.split(', ')` 
+0

它打印第一個機場代碼,但後兩個不起作用,因爲鏈接中有空格。 – Savvis

+0

@Savvis修正了這個! – Willy