# 매월 벽지를 자동으로 바꾸고 싶다! 그 2

매월 벽지를 자동으로 바꾸고 싶다! 그 2



전회의 기사로 매월 자동으로 벽지를 바꾸는 프로그램을 만들어 보았습니다만, PC를 재기동하면 벽지가 리셋 되어 버렸기 때문에, 여러가지 시행착오해 보았습니다.

개선점



프로그램을 매일 실행하면 매일 벽지 다운로드하게 되어, 그것은 조금 넌센스라고 생각하기 때문에 if文 를 사용해 조건 분기해 보았습니다.
또한 파이썬 환경이 없어도 움직이도록 exe形式로 변환하여 움직이기로 결정했습니다.

조건 분기



if문을 사용해, 지정된 격납처에 「wallpaper_yyyymm_1.jpg」라고 하는 파일이 없는지를 판정.
프로그램 실시 월의 이미지 파일이 없으면 배경 화면을 다운로드합니다.

우선, 실시일의 일자를 취득해, 파일명을 작성합니다. 이것은 이전과 동일합니다.
    #--- import Today's date ---
    dt_now = datetime.datetime.now()
    print(dt_now.strftime('%Y/%m/%d'))

    #--- path make ---
    dst_path = r'C:\Users\ayk_f\wallpaper\wallpaper_'+dt_now.strftime('%Y%m')+'_1.jpg'
    wname = 'wallpaper_'+dt_now.strftime('%Y%m')+'_1.jpg'
    print('path: '+dst_path)
$ python wallpaper_v2.py
2021/09/13
path: C:\Users\ayk_f\wallpaper\wallpaper_202109_1.jpg

파일명을 만들 수 있었으므로 해당하는 파일명이 없는지를 판정해, 없는 경우만 벽지를 다운로드합니다.
    is_file = os. path.isfile(dst_path)
    print(is_file)

    if is_file:
        print(f"{wname} is a file.")
        pass #なにもしない
    else:
        print(f"{wname} is a not file.")
os. path.isfile() 함수는 지정된 파일 이름이 존재하는 경우 True를 반환하는 함수 인 것 같습니다.
이번은 「지정한 디렉토리에 wallpaper_202109_1.jpg 가 존재하는 경우는 아무것도 하지 않는다, 존재하지 않는 경우는 다운로드한다」라고 하게 됩니다.pass 는 조건 분기의 결과가 아무것도 하지 않는 경우에 넣어 둘 필요가 있습니다.
이번에는 시험적으로 print를 실행하고 있지만 실제로는 코멘트 아웃하기 위해 pass를 넣고 있습니다.

참고로
이달의 벽지(wallpaper_202109_1.jpg)가 있을 때~~~ ! ! !
$ python wallpaper_v2.0.py
2021/09/13
path: C:\Users\ayk_f\wallpaper\wallpaper_202109_1.jpg
True

없을 때~~~~
$ python wallpaper_v2.0.py
2021/09/13
path: C:\Users\ayk_f\wallpaper\wallpaper_202109_1.jpg
False

이 재료가 하고 싶었을 뿐···(웃음)

없을 때(else시)에 배경화면을 다운로드하는 코드를 실행하고, 마지막으로 배경화면을 설정하는 코드를 실행하면 완성입니다.
벽지의 설정은 재기동시에 리셋 되어 버리므로, if문의 밖에 내놓아 둘 필요가 있습니다.

코드 exe 파일화



이 기사 대로 했습니다.
참고로 기록해 둡니다.

1. pyinstaller 설치



Python을 설치한 상태에서 pyinstaller를 설치합니다.
$ pip install pyinstaller

2. exe 파일 만들기



설치가 완료되면 exe形式 파일을 만듭니다.
$ pyinstaller wallpaper_v2.0.py --onefile
--onefile 옵션은, 관련 파일을 1개에 정리해 준다고 하는 것. 선택 사항입니다.

실행 후 3개의 폴더와 spec形式 파일이 생겼습니다.


dist 폴더 안에, 작성한 exe形式 의 파일이 작성되고 있습니다.
이제 exe形式 로 변환할 수 있었습니다!


사이고에게



지난번 게시한 코드의 개판에 관해서였습니다.
절각 exe화했기 때문에, 태스크 스케줄러를 그만두고 windows의 스타트업에 푹 빠져 넣기로 했습니다.
매일 PC 시작한 타이밍에 실행해 주기 때문에, 이제 이것으로 안심의 것···.

참고 사이트


  • 파이썬에서 파일의 존재 확인하기 - 파이썬 시작하기
  • 파이썬 파일을 exe화하는 방법 【초보자용】 - TechAcademy 매거진
  • 파이썬 pass 문장의 의미와 사용법 - note.nkmk.me
  • 좋은 웹페이지 즐겨찾기