天兒真好大家,更新CSV文件(添加/刪除行)與Python 3
我有一個樹莓派系統跟蹤的工具,通過各種用戶被檢查出來。我已經設置好了,以便在用戶簽入時以及簽出時執行系統掃描。通過比較兩次掃描,我可以確定工具是否已被採用/返回。但是,我也有一個Log.csv文件,用於跟蹤當前檢出哪些工具。當一個工具被檢出(這裏沒有問題)時,我可以添加到這個日誌中,但是在返回工具時我無法刪除該行。
我已經搜索過這個解決方案,但沒有找到具體的東西。據我所知,你不能從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:
???
記住,上面的代碼被簡化爲保持簡潔。我在想'閱讀器'中的'如果工具'太模糊了。我可能會將其更改爲:
for row in reader:
for field in row:
if field == tools_taken:
???
我在正確的軌道上嗎?任何輸入在這裏將非常感謝!
謝謝你,這看起來比繼續沿着CSV路線簡單得多。我之前從未使用Python的數據庫,所以可能需要一些玩弄,但這絕對是實現我想要的最合適的手段。謝謝! – jars121
@ jars121:類似'sqlite3'的_real_數據庫稍微複雜一點......但是一個簡單的'dbm'或'shelve'數據庫比使用'dict'稍微難一些。 (但是有一些注意事項,所以一定要閱讀文檔。) – abarnert
我是Python的新手,所以我還沒有使用過字典,但我會在那一個上寫下你的話!擱置數據庫看起來非常適合這個應用程序,所以感謝您的關注! – jars121