天儿真好大家,更新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