亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果項目已經在 txt 文件中,則從列表中刪除項目

如果項目已經在 txt 文件中,則從列表中刪除項目

三國紛爭 2023-01-04 14:18:52
我正在嘗試運行這段代碼,但我遇到了問題,它沒有按我的需要工作。我需要的是檢查項目列表中的代碼是否已保存在 file.txt 中,如果它已經存在,我需要從列表中刪除該項目。然后將項目列表保存為新 file.txt 中的字符串items = [['e5860', '2020-06-10'], ['e6056', '2020-06-10'], ['e6008', '2020-06-10'], ['100080020', '2020-06-10'], ['e6463', '2020-06-10'], ['KW13012', '2020-06-10'], ['e3589', '2020-06-10']]for i, item in enumerate(items):    with open('file.txt') as f:        if item[0] in f.read():            items.pop(items.index(item))with open('file.txt', 'w') as f:    f.write(str(items))print(items)當我第一次運行此代碼時,file.txt 將為空,因此輸出應為:[['e5860', '2020-06-10'], ['e6056', '2020-06-10'], ['e6008', '2020-06-10'], ['100080020', '2020-06-10'], ['e6463', '2020-06-10'], ['KW13012', '2020-06-10'], ['e3589', '2020-06-10']]然后,如果我再次運行相同的代碼,輸出應該是一個空的項目列表(因為它們之前都保存在文件中并從列表中刪除)。但是當我運行它時,第一個輸出是正確的,我從項目中獲取列表,如果我再次運行它然后我得到這個作為輸出:[['e6056', '2020-06-10'], ['100080020', '2020-06-10'], ['KW13012', '2020-06-10']]為什么這個代碼沒有從列表中刪除?我發現從列表中刪除的項目是列表的偶數。但我不明白為什么:/
查看完整描述

1 回答

?
當年話下

TA貢獻1890條經驗 獲得超9個贊

如果要將列表保存為列表,可以使用 json 模塊對其進行序列化。這將使您可以輕松加載和保存列表。


然后您可以加載文件并處理一個數據結構,讓您輕松測試是否包含。套裝是顯而易見的選擇。一旦你有了它,你就可以根據項目是否在這個集合中過濾你的列表,然后將列表轉儲回文件。


這假定文件已經存在(即使它是空的):


items = [['e5860', '2020-06-10'], ['e6056', '2020-06-10'], ['e6008', '2020-06-10'], ['100080020', '2020-06-10'], ['e6463', '2020-06-10'], ['KW13012', '2020-06-10'], ['e3589', '2020-06-10']]



with open(filePath, 'r') as f:

    data = f.read()

    if data:

        file_items = json.loads(data)


        # create a set of just the first items in the sub lists:

        seen = set(item[0] for item in file_items)


    else: # empty file, make an empty set

        seen = set()


filtered = [item for item in items if item[0] not in seen]


print(filtered)



with open(filePath, 'w') as f:

    json.dump(filtered,f)

這將在空文件和包含所有 json 的文件之間交替items


查看完整回答
反對 回復 2023-01-04
  • 1 回答
  • 0 關注
  • 103 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號