我在创建 Python 脚本时遇到一些问题,希望您能帮助我。
该脚本应从多个图像中读取 exif 信息(日期、时间和 GPSInfo),并将按日期排序的结果写入 CSV 文件。
目前我设法将数据写入 CSV 文件。但我无法按日期对条目进行排序。
# for every file in the directory get the latlng
for file in os.listdir("/path/"):
if file.endswith(".jpg" or ".png"):
path_name = '/path'+ file
meta_data = ImageMetaData(path_name)
latlng =meta_data.get_lat_lng()
date = meta_data.date
print(latlng, date)
with open('dez.csv', 'w', newline='') as csvfile:
spamwriter = csv.writer(csvfile, delimiter=' ',
quotechar='|', quoting=csv.QUOTE_MINIMAL)
for x in range(0, 10):
spamwriter.writerow(latlng)
spamwriter.writerow(date)
最佳答案
既然你说你不想要输出 CSV 中的实际日期,你应该构建一个字典将 date
映射到 lat_lng
对,对dict 并然后将字典的每个值写入 CSV。
from pathlib import Path
IMAGE_DIRECTORY = Path("/home/user/Schreibtisch/recoveredPictures/")
images = list(IMAGE_DIRECTORY.glob("*.jpg")) + list(IMAGE_DIRECTORY.glob("*.png"))
date_to_lat_lng = {}
for image in images:
meta_data = ImageMetaData(path_name)
lat_lng = meta_data.get_lat_lng()
date = meta_data.get_date_time()
date_to_lat_lng[date] = [lat_lng[0], lat_lng[1]]
with open("test.csv", "w", newline="") as csvfile:
writer = csv.writer(csvfile, delimiter="\t")
for date in sorted(date_to_lat_lng):
writer.writerow(date_to_lat_lng[date])
(已更新您在评论中要求的所有更改)
关于Python3 - CSV 编写器按日期排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58896107/