簡體   English   中英

在追加新值之前檢查文本文件中的現有值

[英]Check existing values in text file before appending new values

我正在嘗試創建一個存儲我已生成的值的簡單緩存,因此我不會在文本文件中附加重復值。 但是,我一直有這方面的問題,無論我似乎嘗試我的程序繼續附加重復值。

這是我目前的代碼,如果有人能指出我正確的方向,我將不勝感激:

import random

def test():
    cache = open('cache.txt','a+')

    for x in range(10):
        number = random.randint(1,20)
        if number not in cache:
            cache.write(str(number) + '\n')

    print("Finished.")

test()

在添加新值之前,您必須跟蹤現有值。 此外,在當前的代碼,你檢查了in對一個文件對象,這是行不通的成員資格測試。

因此,首先將現有值讀入變量,然后添加新值,檢查它們是否已存在。 還要將新生成的無重復隨機值添加到現有值中。

import random

def test():
    with open('cache.txt','r') as cache:
        existing = [l.rstrip("\n") for l in cache.readlines()]

    with open('cache.txt', 'a+') as cache:
        for x in range(10):
            number = str(random.randint(1,20))
            if number not in existing:
                existing.append(number)
                cache.write(number + '\n')
    print("Finished.")

test()

當您number not in cache調用number not in cache ,您正在嘗試查看number是否在open()對象中。 而是首先從cache讀取值。

cache是一個文件,而不是字典或列表; 您需要先讀取cache中的值,然后才能查看它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM