0

我一直在尝试将 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))
4

3 回答 3

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) )
于 2013-01-21T23:44:10.927 回答
1

只使用一个TheFile=open("C:/test.txt","w")语句,并且只使用一个TheFile.close()语句,并确保它们在所有循环之外。

然后,您可以使用file=to 的参数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()
于 2013-01-21T21:30:37.293 回答
1

这会将打印的输出打印stdout到文件中。您是否在 write() 函数中使用了“,”?它将它视为两个单独的参数。

更多write来自 Python shell 的帮助。

写(...)
写(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))
于 2013-01-21T21:31:34.887 回答