2013-10-23 51 views
0

我有一張表,其中包含一個街道名稱以及它的第一個和最後一個門牌號。我想要做的就是打印出來的範圍爲各街道的名字,所以我最終的東西是這樣的:Python:每行的打印範圍

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文件中最後一個條目的範圍。有沒有人有任何想法如何打印出該範圍內的所有數字,同時還打印出該範圍內每個數字的街道名稱?

+0

我不太確定我明白什麼#第一個房號列和#last房號列真正的意思。你能展示一些例子嗎? – David

+0

請發佈您的輸入文件格式 – yemu

回答

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 
+0

謝謝,這工作完美。除了缺少用於定義行的代碼之外,看起來我幾乎是正確的。 – andyp

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. 環招搖過市讓每一個街道的名字和射程範圍並打印出每個號碼在單獨的線上