回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>所以我有一个生成的列表,比如missingfromauthoritative,有了这个列表,我想做两件事。
1在屏幕上打印结果;
2将结果写入csv文件。</p>
<p>以我所拥有的,它会做一个或另一个,有时是一个组合。下面的代码就是我的代码。</p>
<pre><code>#Find what is missing or new
missingFromAuthoritative = dBase.execute('SELECT url, mapindex, mapname, layerid, layername FROM authoritative EXCEPT SELECT url, mapindex, mapname, layerid, layername FROM current;')
newToAuthoritative = dBase.execute('SELECT url, mapindex, mapname, layerid, layername FROM current EXCEPT SELECT url, mapindex, mapname, layerid, layername FROM authoritative;')
#Print missing services (-) and new services (+)
for missing in missingFromAuthoritative:
print '-', missing[0], '\n Map: ', missing[2], '\n Layer:', missing[4], '\n'
self.inconsistency += 1
outcsv = csv.writer(open('missing.csv', "wb"))
header = ("Map Service","Map Index","Data Frame","Layer ID","Layer Name")
outcsv.writerow(header)
outcsv.writerows(missingFromAuthoritative)
</code></pre>
<p>它有时也会将一行写入屏幕,另三行写入csv。
这就是我想在屏幕上看到的
<em>-地图服务器
贴图:图层
层:拟建发电站
-地图服务器
贴图:图层
层:现有基础设施
-地图服务器
贴图:图层
图层:现有公用设施场地
-地图服务器
贴图:图层
层:现有输电线路
在81.28秒内发现4个不一致。</em></p>
<p>这就是我想要的csv
<em>地图服务地图索引数据帧图层ID图层名称
MapServer 0层0拟建发电站点
MapServer 0层1现有基础结构
Map2实用工具站点现有层
MapServer 0层3现有传输线</em></p>
<p>我不知道为什么把它们放在for迭代器后面不起作用。让威瑟尔工作的唯一方法就是把另一个说出来。</p>
<p>谢谢</p>