1

我有一张包含街道名称以及第一个和最后一个门牌号的表格。我想要做的是打印出每个街道名称的范围,所以我最终得到这样的结果:

1 The Street
2 The Street
3 The Street
1 Main Street
2 Main Street
etc.

我是 Python 新手,这就是我到目前为止所得到的:

>>> import csv
>>> inp = csv.reader(open("/tmp/HSN.csv", "r"), delimiter = ',')
>>> a = (line[0]) #street name column
>>> b = int(line[1]) #first house number column
>>> c = int(line[2]) #last house number column
>>> for d in range(b, c+1):
         print a, d
         continue

不幸的是,这似乎只适用于 CSV 文件中最后一个条目的范围。有没有人知道如何打印出该范围内的所有数字,同时打印出该范围内每个数字的街道名称?

4

2 回答 2

1

您的示例是否缺少代码?line变量从何而来?

以下代码应该可以帮助您入门:

inp = csv.reader(open("/tmp/HSN.csv", "r"), delimiter = ',')
for line in input:
  street_name = line[0]
  first_house_num = int(line[1])
  last_house_num = int(line[2])
  for house_num in range(first_house_num, last_house_num + 1):
    print('{} {}'.format(house_num, street_name)
  1. 遍历文件中的每条街道
  2. 获取每条街道的名称和范围
  3. 遍历街道范围并在单独的行上打印每个数字
于 2013-10-23T19:50:32.707 回答
0

你在哪里定义线?它可能是以前的测试遗留下来的。你的逻辑很好,你只想为每一行做。试试这个:

import csv
inp = csv.reader(open("/tmp/HSN.csv", "r"), delimiter = ',')
for line in inp:
    a = (line[0]) #street name column
    b = int(line[1]) #first house number column
    c = int(line[2]) #last house number column
    for d in range(b, c+1):
        print a, d
于 2013-10-23T19:51:41.753 回答