Hướng dẫn extract time from text python - trích xuất thời gian từ Python văn bản

Nếu bạn có thể xác định các phân đoạn thực sự chứa thông tin ngày, phân tích chúng có thể khá đơn giản với Parsedatetime. Có một vài điều cần xem xét mặc dù cụ thể là ngày của bạn không có nhiều năm và bạn nên chọn một địa điểm.

>>> import parsedatetime
>>> p = parsedatetime.Calendar()
>>> p.parse("December 15th")
((2013, 12, 15, 0, 13, 30, 4, 319, 0), 1)
>>> p.parse("9/18 11:59 pm")
((2014, 9, 18, 23, 59, 0, 4, 319, 0), 3)
>>> # It chooses 2014 since that's the *next* occurence of 9/18

Nó không phải lúc nào cũng hoạt động hoàn hảo khi bạn có văn bản không liên quan.

>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)

Thành thật mà nói, điều này có vẻ như là loại vấn đề đủ đơn giản để phân tích các định dạng cụ thể và chọn các định dạng nhất trong mỗi câu. Ngoài ra, nó sẽ là một vấn đề học máy tốt.

Trong bài viết này, chúng ta sẽ xem làm thế nào để trích xuất thời gian từ DateTime trong Python.

Trong Python, không có loại dữ liệu nào như DateTime, trước tiên, chúng tôi phải tạo dữ liệu của mình thành định dạng DateTime và sau đó chúng tôi sẽ chuyển đổi dữ liệu DateTime của chúng tôi thành thời gian. Một mô -đun Python được sử dụng để chuyển đổi dữ liệu thành định dạng DateTime, nhưng trong bài viết, chúng tôi sẽ sử dụng mô -đun DateTime để thực hiện nhiệm vụ này.

Cú pháp: DateTime.strptime ()datetime.strptime()

Tham số: & nbsp; 

  • arg: Nó có thể là số nguyên, float, tuple, series, dataFrame để chuyển đổi thành datetime dưới dạng kiểu dữ liệu của nó
  • Định dạng: Đây sẽ là STR, nhưng mặc định là không có. Thời gian phân tích theo thời gian phân tích, ví dụ:%D/%m/%y, lưu ý rằng,%F F F sẽ phân tích tất cả các cách cho đến nano giây.

ví dụ:> định dạng = về%y%b%d%h%m%s

ví dụ: datetime_obj = datetime.strptime (Hồi 19022002101010,,%d%m%y%h%m%s,) # nó sẽ trả về đối tượng DateTime.

Trích xuất thời gian từ đối tượng DateTime

Trong phần này, chúng tôi sẽ trích xuất thời gian từ đối tượng DateTime.

Chúng tôi làm cho chuỗi của chúng tôi thành đối tượng DateTime, bây giờ chúng tôi trích xuất thời gian từ đối tượng DateTime của chúng tôi, bằng cách gọi phương thức .time ()..time() method.

Cú pháp: .time ().time()

Trả về: Nó sẽ trả về thời gian từ đối tượng DateTimeIt will return the time from the datetime object

Dưới đây là việc thực hiện:

Python3

import datetime

from datetime import datetime

>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
1
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
2
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
3

>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
4
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
2
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
6

>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
7
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
8
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
9

2001-08-24 10:10:10
10:10:10
0
2001-08-24 10:10:10
10:10:10
1

2001-08-24 10:10:10
10:10:10
2
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
2
2001-08-24 10:10:10
10:10:10
4

2001-08-24 10:10:10
10:10:10
0
2001-08-24 10:10:10
10:10:10
6

Output:  

2001-08-24 10:10:10
10:10:10

Trích xuất giờ theo thời gian

Trong phần này, chúng tôi sẽ trích xuất giờ từ thời gian trích xuất từ ​​đối tượng DateTime, tất cả 3 bước đều giống như trong ví dụ trước, trong ví dụ này, chúng tôi sẽ thêm phương thức .hour để trích xuất giờ từ đối tượng DateTime.

Chúng ta phải trích xuất thời gian, vì vậy phần tiếp theo là trích xuất giờ từ đối tượng DateTime, bằng cách gọi phương thức .hour.

Cú pháp: .hour.hour

Trả lại: Nó sẽ trả lại giờ từ dấu thời gian. : It will return the hour from timestamp.

Dưới đây là việc thực hiện:

Python3

import datetime

from datetime import datetime

>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
1
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
2
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
3

>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
4
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
2
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
6

2001-08-24 10:10:10
10:10:10
0
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
2
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
3
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
4
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
5
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
6

2001-08-24 10:10:10
10:10:10
2
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
2
2001-08-24 10:10:10
10:10:10
4

2001-08-24 10:10:10
10:10:10
0
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
2import2
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
4
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
5import5

Trích xuất giờ theo thời gian

2001-08-24 10:10:10
10:10:10
0
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
2datetime1
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
4
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
5datetime4

Output:  

date time : 2020-10-31 23:10:32
Time : 23:10:32
Hour : 23

Trong phần này, chúng tôi sẽ trích xuất giờ từ thời gian trích xuất từ ​​đối tượng DateTime, tất cả 3 bước đều giống như trong ví dụ trước, trong ví dụ này, chúng tôi sẽ thêm phương thức .hour để trích xuất giờ từ đối tượng DateTime.

Chúng ta phải trích xuất thời gian, vì vậy phần tiếp theo là trích xuất giờ từ đối tượng DateTime, bằng cách gọi phương thức .hour.

Python3

import datetime

from datetime import datetime

Cú pháp: .hour

Trả lại: Nó sẽ trả lại giờ từ dấu thời gian.

>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
7
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
8
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
9

2001-08-24 10:10:10
10:10:10
0
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
2
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
3
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
4
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
5
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
6

2001-08-24 10:10:10
10:10:10
2
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
2
2001-08-24 10:10:10
10:10:10
4

2001-08-24 10:10:10
10:10:10
0
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
2import2
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
4
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
5import5

Trích xuất giờ theo thời gian

2001-08-24 10:10:10
10:10:10
0
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
2
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
00
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
4
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
5
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
03

Trong phần này, chúng tôi sẽ trích xuất giờ từ thời gian trích xuất từ ​​đối tượng DateTime, tất cả 3 bước đều giống như trong ví dụ trước, trong ví dụ này, chúng tôi sẽ thêm phương thức .hour để trích xuất giờ từ đối tượng DateTime.

Chúng ta phải trích xuất thời gian, vì vậy phần tiếp theo là trích xuất giờ từ đối tượng DateTime, bằng cách gọi phương thức .hour.

Output: 

date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0

Cú pháp: .hour

Nếu ngày không rơi vào phạm vi, thì mã sẽ cung cấp cho chúng ta một ‘valueError. & nbsp; Để xác định thời gian mắc lỗi này, chúng tôi có thể làm là sử dụng các câu lệnh ngoại lệ và nói với người dùng rằng bạn đã nhập sai ngày và bạn không thể có thời gian kể từ ngày đó, vì ngày đó không bao giờ tồn tại, vì vậy Làm thế nào đến thời gian nên tồn tại trong ngày đó.

Python3

import datetime

from datetime import datetime

>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
1
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
2
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
21

>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
22
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
23

>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
24
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
4
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
2 from6

>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
28
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
8
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
9

>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
24
2001-08-24 10:10:10
10:10:10
0
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
2
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
3
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
4
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
5
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
6

>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
38
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
23

>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
24
2001-08-24 10:10:10
10:10:10
0
date time : 3001-01-10 23:00:00
Time : 23:00:00
Minute : 0
Second : 0
2
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
43
>>> p.parse("9/19 LAB: Serial encoding")
((2014, 9, 19, 0, 15, 30, 4, 319, 0), 1)
>>> p.parse("9/19 LAB: Serial encoding (Section 2.2)")
((2014, 2, 2, 0, 15, 32, 4, 319, 0), 1)
9

Output:

Bạn đã nhập ngày không chính xác, vui lòng nhập một ngày hợp lệ


Làm cách nào để trích xuất thời gian từ văn bản trong Python?

Mô -đun Datefinder Python có thể định vị ngày trong một cơ thể của văn bản. Sử dụng phương thức find_dates (), có thể tìm kiếm dữ liệu văn bản cho nhiều loại ngày khác nhau. DateFinder sẽ trả về bất kỳ ngày nào mà nó tìm thấy dưới dạng đối tượng DateTime.

Làm thế nào để bạn chuyển đổi chuỗi thành thời gian trong Python?

Chúng ta có thể chuyển đổi một chuỗi thành DateTime bằng hàm strptime ().Hàm này có sẵn trong các mô -đun DateTime và Time để phân tích một chuỗi vào các đối tượng DateTime và thời gian tương ứng.using strptime() function. This function is available in datetime and time modules to parse a string to datetime and time objects respectively.

Làm thế nào để bạn phân tách ngày và thời gian trong Python?

Làm cách nào để phân tách ngày và thời gian trong một cột trong Python ?..
Xác định DataFrame ..
Áp dụng chức năng pd.TO_dateTime () bên trong df ['dateTime'] và chọn ngày bằng dt.date sau đó lưu nó dưới dạng df ['date'].
Áp dụng chức năng pd.TO_dateTime () bên trong df ['dateTime'] và chọn thời gian bằng DT.Time sau đó lưu nó dưới dạng df ['Time'].

Làm thế nào để bạn trích xuất dữ liệu từ một tệp văn bản trong Python?

Cách trích xuất các phần cụ thể của tệp văn bản bằng Python..
Hãy chắc chắn rằng bạn đang sử dụng Python 3 ..
Đọc dữ liệu từ một tệp văn bản ..
Sử dụng "với mở".
Đọc các tệp văn bản theo từng dòng ..
Lưu trữ dữ liệu văn bản trong một biến ..
Tìm kiếm văn bản cho một chuỗi con ..
Kết hợp các biểu thức thường xuyên ..
Để tất cả chúng cùng nhau..