检查扣的钥匙是否已经存在于文件中。

2024-04-25 19:51:53 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我正在编写一个脚本,用uuid4生成随机数和字符。 这些生成的密钥保存在一个列表中,这个列表将保存在一个名为“already”的文件中_已用.txt". 我的问题是:

如何检查生成的密钥,使它们不在已使用的文件中,以便获得唯一的密钥。你知道吗

    import uuid
    checklist_idfile = open('already_used.txt', 'a')
    already_used = []
    def checklist(string_length=9):
        count = 0
        while count < 20:
                count += 1
                checklist_random = str(uuid.uuid4())
                checklist_random = checklist_random.replace("-","")
                checklist_prefix = 'TEST_'
                id_checklist_random = checklist_prefix + checklist_random[0:string_length]
                print id_checklist_random
                already_used.append(id_checklist_random)
                checklist_idfile.write(id_checklist_random)
                checklist_idfile.write('\n')

生成的密钥如下所示:TEST\u d1c23ba2f 非常感谢你!你知道吗


Tags: 文件txtid列表stringuuidcount密钥
2条回答

如果我正确理解了这个问题,您需要做如下操作:

with open("already_used.txt", "r") as used:
    already_used = {x.rstrip() for x in used}
if not some_key in already_used:
    doing somethig
    ...

您可以使用in关键字检查集合中的键:

if key in collection: do_something()

但要注意,如果集合是list,则需要很长时间(对于您检查的每个键,您需要查看几乎整个列表)

如果要一次检查更多键,请从要比较的集合中生成set(set has constant,如下所示:

my_set = set(some_collection)

for key in keys:
    if key in my_set: do_something()

如果要从文件中设置,请执行以下操作:(假设每个键都位于新行)

key_set = set([x.strip() for x in open("file.txt")])

相关问题 更多 >