[英]How to convert data type (dd:hh:mm:ss) “1 day, 01:00:00” in seconds using Python
我正在嘗試使用以下代碼行轉換數據:“ 1天,01:00:00”以秒為單位:
import datetime
time_1 = '1 day, 01:00:00'
h, m, s = str(time_1).split(':')
seconds = (int(datetime.timedelta(hours=int(h), minutes=int(m), seconds=int(s)).total_seconds()))
print(seconds)
但是我得到了這個錯誤:
>>> ValueError: invalid literal for int() with base 10: '1 day, 01'
我可以從變量“ time_1”中刪除“ 1 day”(但不包括天數)來得到正確的結果...
有人可以幫我嗎?
在用“:”分割之前,您需要先用逗號分割並加上結尾部分,如果不這樣做,則h
將設置為"1 day, 01"
time_aux = time_1.split(',')[1]
h, m, s = time_aux.split(':')
使用split拆分您的初始字符串
result = [x.strip() for x in time.split(',')]
然后將第一項和第一個字符乘以64200,將其轉換為秒,然后像您一樣轉換小時,分鍾和秒。
seconds = (int(datetime.timedelta(hours=int(h), minutes=int(m), seconds=int(s)).total_seconds()))
total_seconds = int(result[0][1])*64200 + seconds
您可以使用re
解析時間字符串:
import datetime
import re
time_1 = '1 day, 01:00:00'
for (days, t) in re.findall(r'(?:(\d+)\s+days?)?,?\s*([\d:]+)', time_1):
h, m, s = str(t).split(':')
seconds = datetime.timedelta(hours=int(h), minutes=int(m), seconds=int(s)).total_seconds()
if days:
seconds = seconds + datetime.timedelta(days=int(days)).total_seconds()
print(int(seconds))
打印:
90000
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.