[英]Checking last element of a string in a list
我有一些串行通信日志來分析時間,所以我用格式YYYY-MM-DD HH:MM:SS.ffffff記錄時間戳的消息:所以我的文件看起來像這樣:
YYYY-MM-DD HH:MM:SS.ffffff:
幾行字節
YYYY-MM-DD HH:MM:SS.ffffff:
等等...
我想從我的文件中提取日期,以便我可以計算消息之間的時間
我想使用datetime模塊操作日期,一開始我想在每個日期結束時去除冒號。 我已經讀取了我的文件並將其保存在變量中,該變量是一個字符串列表,每個元素都是一行。 現在我想創建僅包含日期的第二個列表,僅提取以冒號結尾的那些行。
f=open("sniffinglog.txt","r")
lines=(f.readlines())
lines_number=len(lines)
i=0
dates=[]
while i<lines_number:
if lines[i].endswith(":"):
dates.append(lines[i])
i+=1
print (dates)
我檢查了lines
是否正確創建,但是沒有元素附加到列表dates
。 它仍然是空的。 我的if
條件有問題嗎? 或者是否有另一種方法來檢查字符串的最后一個字符,如果它是一個列表元素?
這應該有用,如果沒有,那么你的線可能不會以:
。
with open("sniffinglog.txt", "r") as f:
content = f.readlines()
dates = []
for line in content:
if line.strip().endswith(":"):
dates.append(line.rstrip(":"))
print(dates)
您需要從文件的每一行刪除新行。
嘗試更換
lines=(f.readlines())
同
lines=[l.strip() for l in f.readlines()]
一種更好的方法來查找行中的時間戳
f=open("sniffinglog.txt","r")
lines=(f.readlines())
lines_number=len(lines)
i=0
dates=[]
while i<lines_number:
# Check if line is a timestamp.
if time.strptime(line[:19], '%Y-%m-%d %H:%M:%S'):
dates.append(lines[i])
i+=1
print (dates)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.