Не получить полный вывод из списка - PullRequest
0 голосов
/ 04 апреля 2020

Цель

Я пытаюсь извлечь данные GPS "Широта" и "Долгота" из множества JPG, и я до сих пор добился успеха, но моя главная проблема заключается в том, что когда я пытаюсь записать например, координаты в текстовый файл. Я вижу, что только один набор координат был записан по сравнению с выводом моей консоли, который показывает, что каждое изображение было извлечено. Вот пример: Вывод на консоль и вот мой текстовый файл, который должен быть зеркальным выводом на моей консоли: Текстовый файл

Я не до конца понимаю в чем проблема и почему он не просто напишет все их вместо одного. Я считаю, что он каким-то образом перезаписывается, или модуль 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, без циклов, циклы, списки, списки отсутствуют, различные способы записи в файл и т. д. c. Любая помощь приветствуется, потому что я полностью потерян на этом этапе. Спасибо.

1 Ответ

1 голос
/ 04 апреля 2020

Вы заменяете переменную data каждый раз через l oop, не добавляя в список.

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...