2013-01-21 84 views
0

我一直試圖將Python中嵌套'while'循環函數的輸出轉換爲文本文件。我知道「寫入文件」是:將Python中的嵌套'while'循環函數輸出到文本文件中

TheFile=open("C:/test.txt","w") 
TheFile.write("Hello") 
TheFile.close() 

但希望得到我的緯度和經度的嵌套循環的輸出,當我應該使用座標轉換成文本文件?我能得到我想要的東西從打印功能,但不能似乎得到它到一個文本文件...感謝:

lat=-100 
long=-190 
while lat <=80: 
    lat=lat+10 
    long=-190 
    while long<=170: 
     long=long+10 
    print ("latitude:"+format(lat),"longitude:"+format(long)) 
+0

使用'格式()'無任何格式規範是沒用的,使用'STR()'代替或更好的去爲字符串格式化。 –

回答

1

僅使用一個TheFile=open("C:/test.txt","w")語句,只有一個TheFile.close()聲明,並確保他們在所有循環之外。

然後,您可以使用file=參數到print,否則將它保持爲完全相同的print語句。

在你的榜樣,是這樣的:

TheFile=open("C:/test.txt","w") 
lat=-100 
long=-190 
while lat <=80: 
    lat=lat+10 
    long=-190 
    while long<=170: 
     long=long+10 
     print ("latitude:"+format(lat),"longitude:"+format(long), file=TheFile) 
TheFile.close() 
+0

請注意'file = TheFile'在py2x中不起作用。 –

+0

@AshwiniChaudhary:我的假設是OP使用Python 3.0,因爲他使用了括號。當然,這在2.x中也是有效的語法,這只是沒有必要的。 –

1

這將打印印上stdout到文件的輸出。你在write()函數中使用了','嗎?它將其視爲兩個獨立的論點。

更多關於來自Python shell的幫助的write

寫(...)
寫(STR) - >無。將字符串str寫入文件。

Note that due to buffering, flush() or close() may be needed before 
the file on disk reflects the data written. 

試試這個代碼:

with open("output","w") as f: 
    lat=-100 
    long=-190 
    while lat <=80: 
    lat=lat+10 
    long=-190 
    while long<=170: 
     long=long+10 
     f.write("latitude:"+format(lat)+" longitude:"+format(long)) 
+0

使用'with'語句+1。 –

1
#! /usr/bin/python3.2 

with open("out2.txt","w") as f: 
    for lat in range (-90, 100, 10): 
     for lon in range (-180, 190, 10): 
       f.write ("latitude: {}\tlongitude: {}\n".format (lat, lon))