将日期时间追加到列表-列表保持为空



我有一些代码读取了一个包含日期的文件名列表,在分割字符串以获得日期后,我想创建一个日期时间对象列表。但是,使用此代码,日期时间列表将保持为空,而日期字符串列表将正确追加。

代码:

calib_files = self.optitrack_calibration_listbox.get(0, END)
format = '%Y-%m-%d %H.%M.%S'
calib_datetimes = []
calib_dates = []
for calib in calib_files:
calib_date = ' '.join(calib.split(' ')[1:3])
calib_dates.append(calib_date)
calib_datetimes.append(datetime.strptime(calib_date, format))
print(f'{calib_dates=}')
print(f'{calib_datetimes=}')

输出:

calib_files=('Cal 2021-10-11 11.35.52 (3DErr 4.949 mm) Poor.cal', 'Cal 2021-10-11 11.44.49 (3DErr 0.285 mm).cal', 'Cal 2021-10-28 09.01.21 (3DErr 0.656 mm) Excellent.cal', 'Cal 2021-11-04 09.54.00 (3DErr 0.336 mm).cal', 'Cal 2021-12-16 10.30.59 (3DErr 0.319 mm).cal', 'Cal 2021-12-16 13.47.08 (3DErr 0.350 mm).cal', 'Cal 2022-01-12 15.50.51 (3DErr 0.302 mm).cal', 'Cal 
2022-01-17 16.43.21 (3DErr 0.239 mm).cal', 'Cal 2022-01-19 09.41.54 (3DErr 0.300 mm).cal', 'Cal 2022-01-24 14.52.10 (3DErr 0.352 mm).cal', 'Cal 2022-02-10 09.42.10 (3DErr 0.447 mm).cal', 'Cal 2022-02-17 10.12.50 (3DErr 0.507 mm).cal', 'Cal 2022-02-21 10.19.46 (3DErr 0.390 mm).cal', 'Cal 2022-03-04 10.12.26 (3DErr 0.347 mm).cal', 'Cal 2022-03-07 14.40.24 (3DErr 0.431 
mm).cal', 'Cal 2022-03-15 10.33.04 (3DErr 0.365 mm).cal', 'Cal 2022-03-16 10.46.15 (3DErr 0.366 mm).cal', 'Cal 2022-04-11 11.27.07 (3DErr 0.385 mm).cal', 'Cal 2022-04-12 09.17.23 (3DErr 0.355 mm).cal', 'Cal 2022-04-21 15.25.11 (3DErr 0.353 mm).cal', 'Cal 2022-04-26 13.45.35 (3DErr 0.386 mm).cal', 'Cal 2022-05-16 17.21.05 (3DErr 0.397 mm).cal', 'Cal 2022-05-16 18.34.51 
(3DErr 0.395 mm).cal', 'Cal 2022-05-23 14.05.07 (3DErr 0.375 mm).cal', 'Cal 2022-06-23 15.27.01 (3DErr 0.456 mm).cal', 'Cal 2022-07-05 14.15.08 (3DErr 1.125 mm) Excellent.cal', 'Cal 2022-07-05 14.18.10 (3DErr 0.487 mm).cal', 'Cal 2022-08-08 11.57.43 (3DErr 1.466 mm) Great.cal', 'Cal 2022-08-08 12.00.56 (3DErr 0.483 mm).cal', 'Cal 2022-08-23 14.11.53 (3DErr 0.457 mm).cal')
calib_dates=['2021-10-11 11.35.52', '2021-10-11 11.44.49', '2021-10-28 09.01.21', '2021-11-04 09.54.00', '2021-12-16 10.30.59', '2021-12-16 13.47.08', '2022-01-12 15.50.51', '2022-01-17 16.43.21', '2022-01-19 09.41.54', '2022-01-24 14.52.10', '2022-02-10 09.42.10', '2022-02-17 10.12.50', '2022-02-21 10.19.46', '2022-03-04 10.12.26', '2022-03-07 14.40.24', '2022-03-15 
10.33.04', '2022-03-16 10.46.15', '2022-04-11 11.27.07', '2022-04-12 09.17.23', '2022-04-21 15.25.11', '2022-04-26 13.45.35', '2022-05-16 17.21.05', '2022-05-16 18.34.51', '2022-05-23 14.05.07', '2022-06-23 15.27.01', '2022-07-05 14.15.08', '2022-07-05 14.18.10', '2022-08-08 11.57.43', '2022-08-08 12.00.56', '2022-08-23 14.11.53']
calib_datetimes=

calib_files是文件名,calib_dates是提取的日期字符串,calib_datetimes应该是日期时间列表。

希望你们能帮忙!

谢谢!

您得到了什么错误?我可以在没有错误的情况下运行您的代码并获得正确的结果。。。

from datetime import datetime
calib_files = ('Cal 2021-10-11 11.35.52 (3DErr 4.949 mm) Poor.cal',
'Cal 2021-10-11 11.44.49 (3DErr 0.285 mm).cal',
'Cal 2021-10-28 09.01.21 (3DErr 0.656 mm) Excellent.cal')
format = '%Y-%m-%d %H.%M.%S'
calib_datetimes = []
calib_dates = []
for calib in calib_files:
calib_date = ' '.join(calib.split(' ')[1:3])
calib_dates.append(calib_date)
calib_datetimes.append(datetime.strptime(calib_date, format))
print(f'{calib_dates}')
print(f'{calib_datetimes}')

输出:

['2021-10-11 11.35.52', '2021-10-11 11.44.49', '2021-10-28 09.01.21']
[datetime.datetime(2021, 10, 11, 11, 35, 52), datetime.datetime(2021, 10, 11, 11, 44, 49), datetime.datetime(2021, 10, 28, 9, 1, 21)]

最新更新