#pythonのwith構文を使用してusbの有無判定を行う
環境
Mac Big Sur 11.4
vs code 1.58.2
python 3.9.2
pythonでusbが刺さっている時と刺さっていない時で挙動を分けたいと思い、適当な方法で実装しました読んでくれている方の役に立てば幸いです。
##使用するusbを設定する
使用するusbの名前をTESTに変更します。尚usbの名前が違うと期待した動作をしないのでそれぞれ環境に合わせてコードも変更してください。この例ではTESTとつけて貰えば動きます。
Windowsを使用している方はファイルパスの指定方法を適宜変更してください
usb内にtest.csvというファイルを作成しておく中身は数値でも適当な文字列でもなんでも構いません
##with構文を利用してファイルをreadモードで開く
import csv
def verification():
try:
with open('/Volumes/TEST/test.csv','r+',encoding='utf-8') as f:
reader = csv.reader(f)
get_data = [i for i in reader]
return True
except:
return False
if verification():
print('usb有')
else:
print('usb無')
関数verificationはwith構文でusb内のtest.csvというファイルを読み取れるかを確認して読み取り可能ならTrue、読み取り不可能ならwith構文は例外を起こしFalseを戻り値として返す関数です。
if文に関数を渡してあげて戻り値でusbの有無を判定しているだけなのでcsvファイルでなくとも良いのですが自分の用途ではcsvファイルを利用したかったのでこのようにしています。
pc内とusbないでデータを分割して保管してusbが刺さっている時のみコードを動作させる簡単な方法を探している時に思いついたものです。
もっと良い方法をご存知の方がいらしたら是非コメントでご教授願います