[英]How to append values as a new coloumn to existing text file using python
[英]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.