Python
-
[Python] paramiko와 timedelta를 조합하여 리눅스 로그 핸들링Python/Python for Linux 2018. 5. 24. 22:48
* 테스트 환경이기 때문에 root 접속 보안은 배제하고 포스팅 * seculog를 샘플로 하였지만 날짜 형식은 동일하기 때문에 다양한 리눅스 로그에 활용이 가능 # securelog 파일에서 특정일을 선택해서 출력이 가능. (로그가 없어서 4일전으로 출력) day_ago = datetime.datetime.now() - datetime.timedelta(days=4) → 1 : 전일, 2 : 2일전 month = day_ago.strftime('%b') → 월 날짜 형식( 5월 : May ). log[0][2:]와 매칭 day = day_ago.strftime('%d') → 일 날짜 형식( 00 ). log[1]와 매칭 import paramiko import datetime day_ago = date..
-
[ Python ] shutil모듈의 rmtree 메소드를 이용한 하위 디렉토리와 파일 삭제Python/Python Programming 2018. 5. 22. 21:54
shutil.rmtree로 삭제된 파일은 복구 할 수 없으므로, 유의하여 진행한다. 실무에서 사용할 경우 본인환경에서 충분한 테스트를 수행해야 한다. shutil.rmtree('경로')와 같이 이용할 수 있으나 한번 삭제되면 복구될 수 없으니 고민하여 수행하는 것이 좋다. 1. 삭제될 경로확인 2. 해당 명령어가 실행될 경우 삭제되는 폴더와 파일 3. 실행 전 Y / N 트리거 파일삭제 전 os.path.walk를 이용해 삭제리스트를 출력한다. 폴더와 파일수가 많으면 os.listdir을 이용해 1depth만 출력할 수 있다. 경로는 os.abspath를 이용해 상대경로가 입력되더라도 절대경로가 출력된다. 파일작업시 '절대경로'와 '상대경로'의 결과값이 달라질 있으니 중요하고, 또 중요하다. import..
-
[YBM 선정후기] COS Pro 2급 Python 시험 후기Python/Etc 2018. 5. 20. 17:27
1. 온라인 로그인ID와 패스워드를 꼭 기억 시험프로그램을 실행시키면 온라인 로그인을 진행하여 인증한다. 로그인ID와 PW는 꼭 기억하고 가자. ID와 PW를 잊었을 때, 어떤 절차가있는지는 잘 모르겠지만. 시험 전에 ID나 PW를 막 찾을 수 없는지 않은가... 꼭 기억하고 가자! 2. 시험환경 모의 테스트 오른쪽 하단에 있는 버튼이 중요하다. 지문의 경우 프로그래머스 COS Pro 2급 모의고사와 동일하다고 보면 된다 기억에 의존하는 것이니 실제 '초기화', '실행'은 위치가 다를 수 있다. 저장기록 (각 문제가 저장된 시점) 코드 초기화 실행 코드저장 코드저장을 해야 최종 수정본이 반영된다. 저장기록으로 저장시점을 알 수 있다. 감독관이 설명해준다 3. 시험유형과 풀이후기 - 빈칸 채우기, 코딩 수..
-
[Python] pickle 모듈 - 객체형태를 그대로 유지하면서 파일에 저장하고 읽기Python/Python for Windows 2018. 5. 20. 02:42
사전 데이터 형식으로 파일에 저장 import pickle as pk with open(r'D:\Log\pickle.txt', 'wb') as f: data = {1:'python',2:'is',3:'beautiful'} pk.dump(data,f) }q (KX pythonqKX isqKX beautifulqu. 저장된 파일 읽기 import pickle as pk with open(r'D:\Log\pickle.txt', 'rb') as f: loadData = pk.load(f) print(loadData) {1: 'python', 2: 'is', 3: 'beautiful'}
-
[Python] win32evtlog 모듈을 이용한 윈도우 이벤트 로그 추출Python/Python for Windows 2018. 5. 20. 01:42
당일 이벤트 로그 출력 import win32evtlog as wevt import datetime today = datetime.datetime.now().date() day_ago = today - datetime.timedelta(days=1) server = 'localhost' logtype = 'Application' hand = wevt.OpenEventLog(server,logtype) flags = wevt.EVENTLOG_BACKWARDS_READ|wevt.EVENTLOG_SEQUENTIAL_READ total = wevt.GetNumberOfEventLogRecords(hand) while True: events = wevt.ReadEventLog(hand, flags,0) if ev..
-
[Python] 3.6+에서 사전자료형(Dict)은 입력순서를 보존Python/Python Programming 2018. 5. 19. 16:40
DOCS : https://docs.python.org/3/whatsnew/3.6.html 파이썬 3.6+ 에서는 사전입력 순서를 보존한다. 그렇다면 굳이 자료구조의 collections.OrderedDict()를 사용할 필요가 없다는 것인가. 또한 재구현으로 3.5 보다 메모리를 20% ~ 25% 덜 사용하는 등 개선이 있다. 사전을 차례로 입력하고 약 10번 정도 출력해 보았다. dic = {} dic['제주도'] = '한라산' dic['서울'] = '북한산' dic['강원도'] = '설악산' dic['충청북도'] = '속리산' dic['전라도'] = '속리산' cnt = 0 while cnt
-
[Python] collections namedtuple (이름을 가진 튜플)Python/Data Struc & algo 2018. 5. 19. 16:06
DOCS : https://docs.python.org/3/library/collections.html?highlight=namedtuple#collections.namedtuple - 인덱스로 요소를 접근하는 튜플보다 Naming으로 직관적으로 접근이 가능. (마치 사전처럼) - 변경 불가능한 자료형(immutable)으로 요소를 변경하지 않을 경우 사전보다 성능에 이점이 있다. namedtuple (네임드 튜플) import collections Score = collections.namedtuple('Score', 'english math music ') Student1 = Score(english=90, math=80, music=85) print(Student1.english, Student1[..
-
[Python] strip, rstrip, lstrip - 공백과 문자 제거 함수Python/Python Programming 2018. 5. 19. 13:48
lstrip, rstrip, strip는 문자열 인자가 없을 경우 공백을 제거하고, 문자열이 있을 경우 모든 조합을 이용하여 제거 lstrip : 문자열에 왼쪽 공백이나 인자가된 문자열의 모든 조합을 제거 ' apple'.lstrip() # 인자가 없을 경우 왼쪽 공백 제거 -------------------- 'apple' 'apple'.lstrip('ap') # 왼쪽으로 a, p의 문자열의 모든 조합을 제거 -------------------- 'le' rstrip : 문자열에 오른쪽 공백이나 인자가된 문자열의 모든 조합을 제거 'apple '.rstrip() # 인자가 없을 경우 오른쪽 공백 제거 --------------------- 'apple' 'apple'.rstrip('lep') # 오른쪽..