添加到文件的数据与控制台中打印的数据不同
Different data is being added to a file than is being printed in the console
我一直在编写一个程序来获取任何给定点十英里半径内的所有坐标,当打印距离数据时,它的输出与文件中的数据不同。不仅如此,它还会在文件末尾创建一个空行。我该怎么办?
import geopy.distance
distance_data = open("Distance from start.txt", "w")
distance_data.truncate()
distance_data_to_add = []
for i in range (360):
bearing = i
lat = 51.8983
long = 177.1822667
for i in range (10):
distance = i
new_lat_long =
geopy.distance.distance(miles=distance).destination((lat, long), bearing=bearing)
distance_data_to_add.append(new_lat_long)
for element in distance_data_to_add:
distance_data.write(str(element) + "\n")
print(distance_data_to_add)
文件中的示例行是:
51 56m 30.0669s N, 177 10m 51.749s E
控制台中打印信息的示例是:
点(51.94168524994642, 177.1810413957121, 0.0)
对象在列表中看起来不同的原因是因为那是它们的 repr
版本,而不是 str
版本。所以将 repr(element)
写入文件而不是 str(element)
.
文件末尾有一个换行符的原因是因为你在每个元素之后写了 \n
。
替换为:
for element in distance_data_to_add:
distance_data.write(str(element) + "\n")
有了这个:
distance_data.write('\n'.join(map(repr, distance_to_add)))
这将写入每个对象的 repr,每个对象之间有一个换行符(但不是在末尾)。
写完文件后不要忘记distance_data.close()
。
我一直在编写一个程序来获取任何给定点十英里半径内的所有坐标,当打印距离数据时,它的输出与文件中的数据不同。不仅如此,它还会在文件末尾创建一个空行。我该怎么办?
import geopy.distance
distance_data = open("Distance from start.txt", "w")
distance_data.truncate()
distance_data_to_add = []
for i in range (360):
bearing = i
lat = 51.8983
long = 177.1822667
for i in range (10):
distance = i
new_lat_long =
geopy.distance.distance(miles=distance).destination((lat, long), bearing=bearing)
distance_data_to_add.append(new_lat_long)
for element in distance_data_to_add:
distance_data.write(str(element) + "\n")
print(distance_data_to_add)
文件中的示例行是:
51 56m 30.0669s N, 177 10m 51.749s E
控制台中打印信息的示例是:
点(51.94168524994642, 177.1810413957121, 0.0)
对象在列表中看起来不同的原因是因为那是它们的 repr
版本,而不是 str
版本。所以将 repr(element)
写入文件而不是 str(element)
.
文件末尾有一个换行符的原因是因为你在每个元素之后写了 \n
。
替换为:
for element in distance_data_to_add:
distance_data.write(str(element) + "\n")
有了这个:
distance_data.write('\n'.join(map(repr, distance_to_add)))
这将写入每个对象的 repr,每个对象之间有一个换行符(但不是在末尾)。
写完文件后不要忘记distance_data.close()
。