Tôi đang sử dụng dateutil để phân tích tên tệp hình ảnh và sắp xếp chúng theo ngày. Vì không phải tất cả các hình ảnh của tôi đều có siêu dữ liệu, dateutil đang cố gắng đoán vị trí của chúng.Trình phân tích cú pháp dateutil của Python, bỏ qua phần không phải là ngày của chuỗi
Hầu hết các hình ảnh của tôi là ở định dạng này: 2007-09-10_0001.jpg 2007-09-10_0002.jpg vv ...
fileName = os.path.splitext(file)[0]
print("Guesssing date from ", fileName)
try:
dateString = dateParser.parse(file, fuzzy=True)
print("Guessed date", dateString)
year=dateString.year
month = dateString.month
day=dateString.day
except ValueError:
print("Unable to determine date of ", file)
Sự trở lại tôi nhận được là:
('Guesssing date from ', '2007-09-10_00005')
('Unable to determine date of ', '2007-09-10_00005.jpg')
Bây giờ tôi có thể xóa mọi thứ từ sau dấu gạch dưới, nhưng tôi muốn có giải pháp mạnh mẽ hơn nếu có thể, trong trường hợp tôi có hình ảnh ở định dạng khác. Tôi mặc dù mờ sẽ cố gắng và tìm thấy bất kỳ ngày nào trong chuỗi và phù hợp với điều đó, nhưng dường như không hoạt động ...
Có cách nào dễ dàng để trình phân tích cú pháp tìm thấy bất kỳ thứ gì giống như ngày và dừng sau đó không? Nếu không, cách dễ nhất để buộc trình phân tích cú pháp bỏ qua mọi thứ sau dấu gạch dưới là gì? Hoặc một cách để xác định nhiều định dạng ngày với các phần bỏ qua.
Cảm ơn!
là ngày của bạn ít nhất bằng cách nào đó được định dạng? Giống như "yyyy-mm-dd ở đâu đó trong tên tệp"? – mishik
Ý tôi là đôi khi bạn sẽ không thể phân biệt tháng và ngày nếu định dạng ngày là yyyy-dd-mm hoặc yyyy-mm-dd. – mishik
@mishik Có, nó thường là một cái gì đó như "2007-09-10" trong một tên tập tin đầy đủ của "2007-09-10_001". Nếu tôi tẩy "_001" khỏi chuỗi, nó sẽ nhận ra ngày tháng tốt. – deranjer