개인적으로 shell보다는 python를 자주 사용하기 때문에 자주 사용하는 패턴들을 간단하게 정리

glob,os

glob는 유닉스 스타일 경로명 패턴 확장 라이브러입니다. 이것과 os 라이브러리를 이용하면 간단하게 파일을 찾거나 바꿀수 있습니다. 개인적으로 실험 결과를 파싱할때 많이 사용하는 라이브러리 입니다.

예시)result폴더에서 png파일과 npy파일이 모두 존재할 시에 npy파일을 조작

PLAINTEXT
import numpy as np
import glob
import os

...

for name in glob.glob('result/**/*.png',recursive=True):
    np_name=name.replace('png','npy')
    if os.path.exists(np_name):
        np.load(np_name)
        ....
클릭하여 더 보기

subprocess

해당 명령어는 파이썬에서 shell명령어를 실행시키는 명령어 입니다. 개인적으로 파라미터 등을 바꾸어가면서 실험을 진행 할때 많이 사용합니다. 예시 parameter A와 B를 바꾸어 가면서 실험.

PLAINTEXT
import subprocess
basetext='python3 text.py --numA _numA --numB _numB 2>&1'
index=0                                 
for numA in [30,40,50]:
    for numB in [1.0,1.5,2.0]:
        text=basetext
        text=text.replace('_numA',f'{numA}')
        text=text.replace('_numB',f'{numB}')
        proc = subprocess.Popen( text , shell=True, executable='/bin/bash')
        proc.communicate()
클릭하여 더 보기

schedule

파이썬의 crontab.

PLAINTEXT
import schedule
import time

def job():
    print("Do Job...!!!")

schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)
schedule.every(5).to(10).minutes.do(job)
schedule.every().monday.do(job)
schedule.every().wednesday.at("13:15").do(job)
schedule.every().minute.at(":17").do(job)

while True:
    schedule.run_pending()
    time.sleep(1)
클릭하여 더 보기

라이선스

저작자: Jaehun Ryu

링크: https://jaehun.me/posts/%EC%9E%90%EC%A3%BC%EC%93%B0%EB%8A%94-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%ED%8C%A8%ED%84%B4/

라이선스: CC BY 4.0

이 저작물은 크리에이티브 커먼즈 저작자표시 4.0 국제 라이선스에 따라 이용할 수 있습니다. 출처를 밝히면 상업적 목적을 포함해 자유롭게 이용 가능합니다.

댓글

검색 시작

검색어를 입력하세요

↑↓
ESC
⌘K 단축키