0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

# 毎月壁紙を自動で変えたい!その2

Last updated at Posted at 2021-09-13

毎月壁紙を自動で変えたい!その2

前回の記事で毎月自動で壁紙を変えるプログラムを作ってみたのですが、PCを再起動すると壁紙がリセットされてしまったので、いろいろ試行錯誤してみました。

改善点

プログラムを毎日実行すると毎日壁紙ダウンロードすることになり、それはちょっとナンセンスだと思うのでif文を使って条件分岐してみました。
また、python環境が無くても動くように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)があるとき~~~:laughing::laughing::laughing:!!!

$ python wallpaper_v2.0.py
2021/09/13
path: C:\Users\ayk_f\wallpaper\wallpaper_202109_1.jpg
True

ないとき~~~~:sob::sob::sob:

$ 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形式のファイルができました。

image.png
distフォルダの中に、作成したexe形式のファイルが作成されています。
これで、exe形式に変換できました!
image.png

さいごに

前回投稿したコードの改版についてでした。
折角exe化したので、タスクスケジューラをやめてwindowsのスタートアップにほおりこんでおくことにしました。
毎日PC立ち上げたタイミングで実行してくれるので、もうこれで安心のはず・・・。

参考サイト

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?