没有从列表中获取完整输出

Not getting the full output out of a list

Objective

我正在尝试从一堆 JPG 中提取 GPS“纬度”和“经度”数据,到目前为止我已经成功了,但我的主要问题是当我尝试将坐标写入文本文件时例如,与我的控制台输出相比,我看到只写了一组坐标,这表明每个图像都被提取了。这是一个例子:Console Output and here is my text file that is supposed be a mirror output along my console: Text file

我不完全理解问题是什么以及为什么它不会只写所有而不是一个。我相信它正在以某种方式被覆盖,或者 'GPSPhoto' 模块导致了一些问题。


代码

from glob import glob
from GPSPhoto import gpsphoto

# Scan jpg's that are located in the same directory.
data = glob("*.jpg")

# Scan contents of images and GPS values.
for x in data:
    data = gpsphoto.getGPSData(x)
    data = [data.get("Latitude"), data.get("Longitude")]
    print("\nsource: {}".format(x), "\n ↪ {}".format(data))

# Write coordinates to a text file.
with open('output.txt', 'w') as f:
    print('Coordinates:', data, file=f)

我已经尝试了几乎所有我能想到的方法,包括:更改写入权限、不使用 glob、无循环、循环、列表、无列表、不同的写入文件的方式等。 感谢您的帮助,因为此时我完全迷路了。谢谢。

您每次通过循环替换 data 变量,而不是附加到列表。

all_coords = []
for x in data:
    data = gpsphoto.getGPSData(x)
    all_coords.append([data.get("Latitude"), data.get("Longitude")])

with open('output.txt', 'w') as f:
    print('Coordinates:', all_coords, file=f)