코딩스토리/파이썬

파이썬 코딩 - 파일 및 디렉터리 생성 및 파일에 내용 쓰기 - write()

Tech&Fin 2021. 11. 16. 17:20
반응형

비트코인 자동매매 프로그램을 만들다 보니 매수 제외 종목과 같은 특정 정보를 기억했다가 프로그램이 반복 수행되면서 계속 읽어서 사용해야 하는 경우가 발생하게 되었는데요.

 

예를 들면 조건에 맞아 자동으로 매수한 경우 로직이 반복되면 계속해서 반복 매수가 되기 때문에 매수 제외 종목에 등록하여 반복 매수가 되지 않도록 하고 해당 종목이 매도된 경우에는 다시 매수 제외 종목 리스트에서 빼서 조건에 맞는 경우 다시 매수가 될 수 있도록 해야 합니다.

 

구현할 수 있는 방법은 여러가지가 있을 수 있겠지만 지난 포스팅에서 다룬 메세지 발송 기능과 같이 매수 제외 종목 리스트를 관리하는 방법으로 가능할 수 있습니다. 하지만 해당 방법은 메모리에만 관리되기 때문에 프로그램이 종료되었다 다시 시작되는 경우 기존 매수 제외 종목이 초기화 되는 단점이 발생할 수 있습니다.

 

이런 단점을 보완할 수 있는 방법 중 하나로는 원하는 내용을 파일로 저장했다 읽는 방법이 가능할 수 있습니다. 그래서 이번 시간에는 파이썬에서 파일로 내용을 쓰는 부분에 대해서 먼저 살펴 보려고 합니다.

 

지난 포스팅에서 다룬 메시지 발송 기능은 아래 링크를 참고하시면 좋을 것 같습니다.

 

2021.11.16 - [프로젝트/비트코인 자동매매] - 보유코인 모니터링 및 알림 메세지 발송하기 - 파이썬 업비트 비트코인 자동매매

 

보유코인 모니터링 및 알림 메세지 발송하기 - 파이썬 업비트 비트코인 자동매매

얼마전에 파이썬 코딩 중 날짜 형식과 문자형식을 변환하고 시간차이를 계산하는 방법에 대해서 살펴 보았는데요. 이번 시간에는 해당 내용을 이용하여 간단히 모니터링 프로그램을 만들어 보

technfin.tistory.com

 

 

목차 - 클릭하면 이동합니다.

     

    파일 쓰기

    전체 코드

    반응형
    import os
    import sys
    import traceback
    
    # -----------------------------------------------------------------------------
    # - Name : main
    # - Desc : 메인
    # -----------------------------------------------------------------------------
    if __name__ == '__main__':
    
        # noinspection PyBroadException
        try:
    
            # 파일 경로
            file_path = './conf/'
    
            # 파일명
            file_name = 'test.txt'
    
            # 파일명
            file = file_path + file_name
    
            # 내용
            contents = 'test file'
    
            # 경로가 없으면 생성
            if not (os.path.isdir(file_path)):
                os.makedirs(os.path.join(file_path))
    
            # 파일에 저장
            with open(file, "w", encoding="utf-8") as f:
                f.write(str(contents))
                f.close()
    
        except Exception:
            print("Exception 발생!")
            print(traceback.format_exc())
            sys.exit(-200)

     

    디렉토리 생성

    # 경로가 없으면 생성
    if not (os.path.isdir(file_path)):
    	os.makedirs(os.path.join(file_path))

    import os 가 필요하며 isdir을 이용하여 디렉토리 존재 여부를 확인하고 없으면 makedires을 이용하여 디렉토리를 생성합니다.

     

    디렉토리는 './conf/와 같이 ./으로 시작하면 프로그램이 수행되는 곳으로부터의 상대경로를 의미합니다.

     

    파일 생성 및 내용 쓰기

    # 파일에 저장
    with open(file, "w", encoding="utf-8") as f:
    	f.write(str(contents))
    	f.close()

    open 을 이용해서 파일을 열고 write()를 이용하여 내용을 작성합니다. 파일을 쓰기 위해 파일을 열었으므로 쓰기가 완료되면 반드시 close()를 이용해서 닫아 주어야 합니다.

     

    파일을 쓰기 위해 파일을 여는 모드는 아래와 같습니다.

     

    ① w : 기존 내용은 남겨두지 않고 덮어 쓰게 됩니다.
    ② a : 기존 내용 뒤에 추가하여 붙여 넣습니다.

    실행 결과

    실행결과 파이썬 프로그램이 실행 된 디렉토리 아래에 conf 디렉토리가 생성되었고 test.txt 파일이 생성되었습니다.

     

    파일 내용 역시 작성한대로 'test file'이 쓰기 되어 있는 것을 확인할 수 있습니다.

     

    마치며

    Tech&Fin에서는 파이썬 및 업비트API를 이용하여 비트코인 자동매매 프로그램을 만드는 프로젝트를 무료로 진행하고 있으며 자동매매 프로그램을 만들기 위한 파이썬 문법을 그때 그때 간단히 소개해 드리고 있습니다.

     

    진행 중인 비트코인 자동매매 프로그램에 대한 부분은 아래 카테고리에서 확인하실 수 있습니다.

     

    https://technfin.tistory.com/category/%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8/%EB%B9%84%ED%8A%B8%EC%BD%94%EC%9D%B8%20%EC%9E%90%EB%8F%99%EB%A7%A4%EB%A7%A4

     

    '프로젝트/비트코인 자동매매' 카테고리의 글 목록

    코딩&재테크 이야기

    technfin.tistory.com

     

    블로그를 구독하시면 소식을 조금 더 빨리 받아보실 수 있습니다.

    반응형