設定プログラムに組み込もうとしたが、エラーが出て動かない。

doubleが関係しているようだが、整数にdoubleなんてない!!!


いろいろ調べていくと、エラーの原因は、タプルで読み込んでいるため、とあたりがついた。

printして確認してみると、

ut_now = datetime.datetime.now()
print(ut_now, CAY1,CAX1,VCAP1,EXP1)
print(ut_now, TY1,TX1,TY2,TX2,DSP)
print(ut_now, DY1,DX1,SY1,SX1)
asyncio.run(asyncio.sleep(10))

CAY1 = env_vars[0]などとしてしまうと、CAY1=('CAY1', 4656)などになってしまい、整数じゃない!!!

そりゃーエラーもでるわ。


ここから数値だけ抜き出す方法を調べ、とりあえず読み込み側を修正してみると、エラーが出ずに先に進めるようになった。

# ファイルから整数の配列を読み込む
with open('C:/code/py311/Ta2S Inspection soft/settings1.txt', 'r') as f:
    lines = f.readlines()

# 配列を環境変数に格納する
env_vars = []
for line in lines:
    key, value = line.strip().split('=')
    env_vars.append((key, int(value)))

CAY1 = env_vars[0][1]
CAX1 = env_vars[1][1]
VCAP1 = env_vars[2][1]
EXP1 = env_vars[3][1]
TY1 = env_vars[4][1]
TX1 = env_vars[5][1]
TY2 = env_vars[6][1]
TX2 = env_vars[7][1]
DSP = env_vars[8][1]
DY1 = env_vars[9][1]
DX1 = env_vars[10][1]
SY1 = env_vars[11][1]
SX1 = env_vars[12][1]

図らずも、リストとタプルと要素の取得の関係を理解することになった。


まだ試してはいないが、保存は逆にすれば、書き換えられそう。

トリミング範囲の書き込み表示も途中だし。

でも眠気が来ている。また明日か。



コメント

このブログの人気の投稿