Reading and comparing lines in a file using Python -
मेरे पास निम्न प्रारूप की एक फाइल है I
15/07/2010 14:14:13 change_status_from_offline_to_available 15/07/2010 15:01:09 changed_status_from_available_to_offline 15/07/2010 15:15:35 changed_status_from_offline_to_away बन गया_आईडल 15/07/2010 15 : 16: 29 बदल गया_स्टेटुस_फ्रेम_अवे_टॉ_उपलब्ध बन गया_आइंडल 15/07/2010 15:45:40 बदला_स्टेट_संपूर्ण_उपलब्ध_टो_आवे बन गया_आईडेल 15/07/2010 16:05:40 बदला_स्टैट_सर्फम_एवे_टॉ_उपलब्ध बन गया_आइंडल 15/07/2010 16:51:39 परिवर्तित_स्टैट_ऑफ_म_उपलब्ध_टो_ऑफ़लाइन 20/07/2010 13:07: 26 परिवर्तित_स्टैट_संपूर्ण_ऑफलाइन_टॉ_उपलब्ध
मुझे अजगर में फ़ंक्शन बनाने की आवश्यकता है, जिसमें तर्क है: तिथि और समय। फ़ंक्शन कॉल में समय से कम होने के साथ, यह फ़ाइल पढ़ लेनी चाहिए और दूसरी स्थिति वापस करनी चाहिए। यही है
चलिए कहते हैं कि मैं फ़ंक्शन रिटर्नस्टैटस (15/07/2010, 15:10:01) को कॉल करता हूं। फ़ंक्शन फ़ाइल पर जाना चाहिए और उस दिन उस दिन उपयोगकर्ता की स्थिति वापस करनी चाहिए, जो इस मामले में "ऑफ़लाइन" है।
मैं एक पायथन नौसिखिया हूं और कोई मदद वास्तव में सराहना की जाएगी। असल में, आपको क्या करने की ज़रूरत है आपके लॉग से तिथियों और समय को आसानी से निकाला जा सकता है। प्रारूप से तुलना करने के लिए दिनांक समय
दर्ज करें
आयात करें datetime def getStatus (log_list, dt, tm): #filter सूची log_list = [a_log_entry के लिए log_list में a_log_entry अगर a_log_entry [0] == डीटी और a_log_entry [1] & lt; = Tm] #sort यह log_list.sort (cmp = lambda x, y: cmp (x [1], y [1])) अगर log_list है []: वापसी 'इस दिन और समय के लिए कोई स्थिति उपलब्ध नहीं है।' # स्थिति समाप्त करें _ स्थिति = लॉग_सूची [-1] [2] .split ('_') [- 1] .स्ट्रिप () वापसी स्थिति _to_return अगर __name__ == '__main__': in_file = open ('a.log',) 'आरयू') a_list = [] in_file में पंक्ति के लिए: यदि line.strip () '' नहीं है: #handle whitespace a_list.append (line.split ('')) #dataetime ऑब्जेक्ट्स के लिए स्ट्रिंग दिनांक और समय बदलें a_list = [[Datetime.datetime.strptime (el [0], '% d /% m /% Y'), datetime.datetime.strptime (एल [1], '% H:% M:% S'), एल [ 2]] के लिए a_list में el_date = datetime.datetime (2010, 7, 15) a_time = datetime.datetime (1 9 00, 1, 1, 16, 1, 0) प्रिंट getStatus (a_list, a_date, a_time)
Comments
Post a Comment