【发布时间】:2017-06-14 06:16:44
【问题描述】:
为了从 csv 文件中删除特定行,我想为我的行添加一个 ID 值。当然,有几种方法可以做到这一点,我希望能提供一些关于生成 ID 的可能方法的意见。简单而简短但好的方法是首选。
例如使用random.randint(00000, 99999) 可能是一个随机大数字?但是需要检查可能的重复项会让我觉得有更好的解决方案。
另一种方法是读取 csv 文件,将 1 添加到每行的某个变量中。也许您甚至需要想办法检查给定的行是否包含实际的 csv 内容,而不仅仅是\n 的结果。我试过这个并取得了成功,但代码真的很长而且很丑。
我敢打赌,我想不出更好的方法。我的尝试可以在下面找到。它适用于我的特定行管理和添加新行的方式。这就是我现在的习惯。
如果目前还不明显,我正在寻找 Python 3+ 的解决方案。
import os
def ID(filename):
if os.path.isfile(filename):
if os.path.getsize() == 0:
return 1
else:
ID = 1
[ID += 1 for line in open(filename, "r")]
return ID
else:
return 1
【问题讨论】:
-
如果您在 ID 的开头添加几个字母可能会更明显:myID1、myID2、myID3 ... 添加前导零也可以提高可读性:myID00001。我的ID00002 ...
-
这些 ID 的用途是什么?了解这一点将有助于确定合适或最佳的技术。
-
@martineau 一些小程序可以添加/删除/列出条目,例如,您为跟踪它而服用的药物。或食物/卡路里。类似的东西。这就是为什么 16 位密钥不适合的原因。您应该可以通过 argparse 轻松删除它。以
--remove 1232为例。
标签: python python-3.x csv uniqueidentifier