밑부터 읽는게 편할지도


import json

from datetime import datetime



def init_json(data, vendor):

    data[vendor]["update_date"] = today

    data[vendor]["restart"] = ""

    data[vendor]["step"] = ""

    data[vendor]["repeat_count"] = ""

    data[vendor]["the_bill_only"] = ""


    with open(json_path, 'w', encoding='utf-8') as f:

        json.dump(data, f)



def check(data, vendor):

    if data[vendor]["update_date"] == today:

        if data[vendor]["restart"] == "yes":

            if data[vendor]["the_bill_only"] == "yes":

                print("더빌")

                # return "the_bill"

            else:

                print("재시작")

                print(data[vendor]["step"])

                print(data[vendor]["repeat_count"])

                # return data[vendor]["step"], data[vendor]["repeat_count"]

        else:

            pass

    else:

        print("초기화")

        init_json(data, vendor)



def vendor_done(data, vendor):

    data[vendor]["the_bill_only"] = "yes"


    with open(json_path, 'w', encoding='utf-8') as f:

        json.dump(data, f)



def write(data, vendor, step, rp_idx):

    data[vendor]["update_date"] = today

    data[vendor]["restart"] = "yes"

    data[vendor]["repeat_count"] = rp_idx

    data[vendor]["step"] = step


    with open(json_path, 'w', encoding='utf-8') as f:

        json.dump(data, f)



def main(func, *args, **kwargs):

    global today

    today = datetime.today().strftime('%Y-%m-%d')


    global json_path

    # json_path = r''

    json_path = r''

    with open(json_path, 'r', encoding='utf-8') as f:

        data = json.load(f)


    return globals()[func](data, *args, **kwargs)



if __name__ == '__main__':

    main()


다른사람이 짠 코든데

main 함수에서 today랑  json_path를 전역변수선언해 다른 함수들이 불러올 수 있게 한거같은데

다른 함수들마다 죄다 today랑 jsonpath 써주기 싫으니깐 ㅇㅇ

그밖의

init_json

check

vendor_done 

write

이 함수들 보면 json파일을 write하는 기능임. 이것들은 볼필요 없고


알고싶은건

main 함수가 입력받은 인수들을 전역변수로 리턴하는것까진 이해했는데 근데 이게

인수(init_json , check ,  vendor_done , write)중 하나를 입력받으면 그 함수를 실행시키더라고

인수는 무조건 저중 하나가 들어가고


문제는 with open ~~ as f 여기부터 몰?루겠음

저부분 동작원리를 모르겠음

결과 자체는 입력받은 인수와 같은 이름의 함수를 실행시키는건데