将包含屏幕截图值的列添加到CSV文件

问题描述:

我正在制作在德克萨斯州埃尔帕索发布的建筑许可证地图。这是我第一次进入Python的奇妙世界,它很有趣,但我无法弄清楚csv模块来拯救我的生命。将包含屏幕截图值的列添加到CSV文件

我有一个.csv文件,其中包含'Date','Building Number','Building Type','Description','Project Name','Expiration Date','Status'添加一个名为“地址”的列,其中包含与每个建筑物号码关联的地址。

我已经得到了使用建筑许可证号码获取地址的代码,但是我对如何按顺序获取每个建筑物号码,使用它获取许可证的地址,然后编写它到新的“地址”列。为什么他们不能只将地址放在.csv文件中,这一点超出了我的想象。

这里就是我有这么远来获取地址:

from BeautifulSoup import BeautifulSoup 
import urllib 

CaseNo = "RSP11-00459" # this is an example of the building permit number format 
DBaseEntry = urllib.urlopen("http://permits.elpasotexas.gov/tm_bin/tmw_cmd.pl?tmw_cmd=StatusViewCase&shl_caseno=%s " % CaseNo) 
Soup = BeautifulSoup(DBaseEntry.read()) 
Dang = Soup.findAll("td", { "class" : "ReportCell"})[5] 
Address = str(Dang) 
TableEntry = Address[23:-5].strip() 
print TableEntry 

这是不雅,但我需要一种方式来获得建筑数值为CaseNo,然后写TableEntry作为值(新创建)地址栏。如果它很重要的话,这些表格每个都会有100行。

任何想法/建议?

+1

请问小写的名字?大写名称是为类保留的。 – 2011-04-05 12:06:43

+1

你说“我找不到csv模块”,但后来继续问一个关于BeautifulSoup的问题 - 你能澄清一下吗? “我需要一种方法来获得建筑物号码值,因为CaseNo”对我来说也没有意义。 – seb 2011-04-05 12:13:08

不能确定我完全明白你的问题,但如果它是关于使用CSV模块,那么你的代码看起来应该是这样的:

import csv,os 

with open('foo.csv', 'rb') as r, open('foo.tmp', 'wb') as w: 
    reader = csv.reader(r) 
    writer = csv.writer(w) 

    for row in reader: 
     newrow=whatever_processing_you_need(row) 
     writer.writerow(newrow) 

os.unlink('foo.csv') 
os.rename('foo.tmp','foo.csv') 

据我了解,你使用了地址你报告的代码,现在你想把这个地址附加到你的csv文件中。如果是这样,我会使用@bdev解决方案,而“whatever_processing_you_need”将简单地转换为:“找到您检索的地址的对应行并在最后一列添加地址”。