みなさん、こんにちは。
私は、さまざまなユーザーがチェックアウトしているツールを追跡する Raspberry Pi システムを持っています。ユーザーのチェックイン時とチェックアウト時にシステムのスキャンが実行されるように設定しました。2 つのスキャンを比較することで、ツールが持ち出されたか、または返却されたかを判断できます。ただし、現在チェックアウトされているツールを追跡する Log.csv ファイルもあります。ツールがチェックアウトされたときにこのログに追加できます (ここでは問題ありません) が、ツールが返却されたときにその行を削除するのに問題があります。
これに対する解決策を探してSOを検索しましたが、具体的なものは見つかりませんでした。私が理解していることから、CSV ファイルから単一の行を削除することはできませんか? その特定の行を省略して、ファイルを書き直す必要がありますか?
Log.csv ファイルの行の追加と削除の両方を含め、これまでに行ったことは次のとおりです。
with open('Log.csv', 'a+') as f:
reader = csv.reader(f)
if tools_taken not in reader:
csv.writer(open('Log.csv', 'a+')).writerow([tools_taken])
with open('Log.csv', 'a+') as f:
reader = csv.reader(f)
if tools_returned in reader:
???
上記のコードは、簡潔にするために簡略化されていることに注意してください。「if tools_returned in Reader」行が曖昧すぎると思います。私はそれを次のように変更するかもしれません:
for row in reader:
for field in row:
if field == tools_taken:
???
私は正しい軌道に乗っていますか?ここに入力していただければ幸いです。