我得到了以下代码,但是在输出时(txt文件)它不会返回一个None
的值,但是当我将它保存到txt文件时会发生这种情况,当我只是运行程序它会显示我想要的值。
archi2=open('googletabla.txt', 'w')
nicCoor=open("C:\Users\SistBa\PycharmProjects\seguropais\SeguroPais\NIC.txt", "r")
coorNiclines=nicCoor.readlines()
poly = []
for NicaLines0 in coorNiclines: #leyendo las coordenadas de Nicaragua
if(len(NicaLines0))>5:
NicLines=re.sub(r'99.000', '',str(NicaLines0))
NicLines1=re.sub(r' 0.000', '',str(NicLines))
if NicLines1.isspace()==False :
line = ','.join(NicLines1.split())
lista=str(poly.extend(zip(*[iter(map(float, line.split(',')))]*2)))
archi2.write(lista+'\n')
print poly
archi2.close()
我在python上的输出是:
C:\Python27\python.exe C:/Users/SistBa/PycharmProjects/seguropais/SeguroPais/game
[(14.993, -83.152), (14.959, -83.172), (14.952, -83.2), (14.891, -83.262), (14.762, -83.31), (14.633, -83.283), (14.456, -83.221), (14.333, -83.2), (14.265, -83.214), (14.122, -83.297)...]
处理完成,退出代码为0
但是我的txt文件如下:
None
None
None
None
None
None
None
None...
答案 0 :(得分:1)
视觉上除了以上回答之外。
这里的问题是extend实际上总是返回None
>>> a.extend('a')
>>> a
['a']
所以把它改成这样的东西:
archi2=open('googletabla.txt', 'w')
nicCoor=open("C:\Users\SistBa\PycharmProjects\seguropais\SeguroPais\NIC.txt", "r")
coorNiclines=nicCoor.readlines()
poly = []
for NicaLines0 in coorNiclines: #leyendo las coordenadas de Nicaragua
if(len(NicaLines0))>5:
NicLines=re.sub(r'99.000', '',str(NicaLines0))
NicLines1=re.sub(r' 0.000', '',str(NicLines))
if NicLines1.isspace()==False :
line = ','.join(NicLines1.split())
new_val = zip(*[iter(map(float, line.split(',')))]*2)
poly.extend(new_val)
lista=str(new_val)
archi2.write(lista+'\n')
print poly
archi2.close()
答案 1 :(得分:0)
您正在对list-method" extend"的结果进行字符串转换,并将其写入。但它返回None,这就是为什么你在输出中最终得到一堆None。
另外,你可能甚至不想要扩展,因为你在每次迭代中都会写,所以对于所有的NicaLines0,你都会写它和前面的所有行。
然后你完全不必要地将NicLines1拆分为再次加入它然后拆分它。只需写下
line = NicLines1.split()
并删除以下行中的line.split(",")。
如果你没有正确地逃避它们,或者使用原始字符串,你会在某些时候遇到使用文件名中反斜杠的麻烦。
而且我不知道你想要的输出是什么,所以我无法建议替换lista-assignment。