2013-05-13 45 views
2

我有一個腳本,每30分鐘在我的服務器上運行一次,當它完成時,它會將時間戳寫入文件的最後一行。它在一個目錄中對大約20多個文件執行此操作。我正在嘗試編寫一個Python腳本來檢查每個文件的最後一行,並根據該時間戳是否存在,爲每個文件返回「進行中」或「完成時間:」消息。檢查行是否是Python中的時間戳

如何讓Python確定字符串是否是時間戳?它被格式化爲HH:MM:SS,無月/日期指示。

+0

可以寫什麼替代方案? – 2013-05-13 17:37:19

回答

7

你可以嘗試匹配正則表達式:如果符合用冒號之間3 2位數的雙啓動

import re 
if re.match('\d{2}:\d{2}:\d{2}', line): 

會工作;取決於其他你可能會在line中找到,這很容易就足夠了。

另一種辦法是嘗試和解析它:

import time 

try: 
    time.strptime(line[:8], '%H:%M:%S') 
except ValueError: 
    print('Not a timestamp') 
else: 
    print('Found a timestamp') 

這是很多嚴格的;每當一行沒有以時間戳開始時,就會引發一個ValueError,因爲小時必須在0-23範圍內,分鐘在0-59範圍內,秒在0-60範圍內。

相關問題