2014-09-01 82 views
1

我得到了下面的代碼,但是在輸出(txt文件)的時候,它不會返回一個值,只是一個None但是當我將它保存到一個txt文件時發生,當我只是運行它的程序時顯示我想要的值。Python問題輸出。字符串操作

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

請加'C部分內容:\用戶\ SistBa \ PycharmProjects \ seguropais \ SeguroPais \ NIC.txt' – 2014-09-01 16:44:16

+0

在「lista = ...」之後使用打印語句進行調試,以查看是否有任何內容。 – bluefoggy 2014-09-01 16:49:16

回答

0

您是與字符串轉換list-method「extend」的結果,然後寫下來。但是它返回None,所以這就是爲什麼你最終會在輸出中產生一堆None。

另外,你可能甚至不想擴展,因爲你在每次迭代中都寫了,所以對於所有的NicaLines0你都會寫它和前面的所有行。

然後你完全不必要的分裂NicLines1只加入它再分裂它。只需寫入

line = NicLines1.split() 

並刪除以下行上的line.split(「,」)。

如果您沒有正確地轉義它們,或者使用原始字符串,那麼您在某些時候會遇到使用文件名中的反斜槓的麻煩。

我不知道你想要的輸出是什麼,所以我不能建議替換lista-assignment。

1

視覺除了上面的答案。

這裏的問題是,實際上延長總是返回無

>>> 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()