Python3 - CSV 编写器按日期排序
Python3 - CSV Writer Sort by Date
我在创建 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
s 到 lat_lng
对,对字典的键和 然后 将字典的每个值写入 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])
(更新了您在评论中要求的所有更改)
我在创建 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
s 到 lat_lng
对,对字典的键和 然后 将字典的每个值写入 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])
(更新了您在评论中要求的所有更改)