Python3 - CSV 编写器按日期排序

标签 python python-3.x csv writer

我在创建 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/

相关文章:

c - 手动从简单的 .csv 文件将数据导入为 uint64_t

python - 在 Django 中获取最新的不同对象

python - 我尝试将值映射到 pandas 中的列,但我得到的是 nan 值

python - Sage 笔记本服务器发布/获取

python - 在新行上打印列表元素

python - 根据组编号将数组数组排序

python - 更改 Tkinter 消息框的图标

python-3.x - 我希望我的 Telegram Bot 等到用户使用远程机器人和回调处理程序应答

c# - 生成的 csv 文件中的换行符让我抓狂

python - 为什么 TensorFlow 返回 [[nan nan]] 而不是 CSV 文件中的概率?