【问题标题】:open file with string that has multiple variables使用具有多个变量的字符串打开文件
【发布时间】:2012-10-30 08:15:32
【问题描述】:

当我将机场设置为一个变量时,我可以获得文本文件。但是,如何获取多个机场代码的文本文件并显示信息?

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

【问题讨论】:

  • 您需要在comma(,) 上拆分字符串并使用获得的列表中的单个元素。

标签: python string list for-loop urlopen


【解决方案1】:

如果您的目标是获取每个机场的天气观测数据,您可以使用:

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

对我来说,输出是:

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 汽车 00000KT 10SM CLR 10/ A3005 RMK AO2 SLP175 T0100 402060089 $

2012/10/30 08:14 KOAK 300814Z 06003KT 10SM OVC004 13/12 A3007 RMK AO2

【讨论】:

  • 你应该缩进最后两行。
【解决方案2】:
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

基本上,我们将airport 变量(其中,(逗号和空格)是分隔符)拆分为三个不同的变量:

`airport.split(', ')`

【讨论】:

  • 它打印第一个机场代码,但后两个不起作用,因为链接中有空格。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-25
  • 1970-01-01
  • 1970-01-01
  • 2014-09-13
  • 2014-01-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多