如何从用户指定的txt列表中删除行?

时间:2019-10-29 03:06:33

标签: python

Python 101在这里。我为咖啡店老板创建了一个程序来跟踪库存。我应该通过允许所有者从文件中删除数据来修改文件。要求所有者输入要删除的描述。如果存在描述,则删除咖啡名称和数量。如果找不到描述,则显示消息:在文件中找不到该项目。”到目前为止,我收到的建议是将文件内容读取到行列表中,过滤掉不需要的行,并将列表写回到文件中。

这是我到目前为止所拥有的

with open('coffeeInventory.txt', 'w') as f:
    f.write('Blonde Roast=15\n')
    f.write('Medium Roast=21\n')
    f.write('Flavored Roast=10\n')
    f.write('Dark Roast=12\n')
    f.write('Costa Rica Tarrazu=18\n')
    f.close()
sum=0

with open('coffeeInventory.txt', 'r') as f:
    for line in f.readlines():
        sum += int(line.split("=")[1])
        print(line)
f.close()

print('Total Pounds of Coffee= ', sum)

with open('coffeeInventory.txt') as f:
  lineList = f.readlines()
lineList= [line.rstrip('\n') for line in open('coffeeInventory.txt')]
print(lineList)

2 个答案:

答案 0 :(得分:0)

也许这可以帮助您入门

import io

f = io.StringIO()

f.write('Blonde Roast=15\n')
f.write('Medium Roast=21\n')
f.write('Flavored Roast=10\n')
f.write('Dark Roast=12\n')
f.write('Costa Rica Tarrazu=18\n')

f.seek(0)

lineList = f.readlines()

print(lineList)

deleteThis = 'Dark Roast'

newList = [line for line in lineList if deleteThis not in line]

print(newList)

答案 1 :(得分:0)

我会从其他答案中走另一条路,实际上是建议一个JSON文件。

首先,您必须创建一个字典。字典中的每个元素都有一个键和一个值。

coffee_inventory = {
    "Blonde Roast": 15
}

您可以通过在方括号中指定名称来访问广告资源。

coffee_inventory["Blonde Roast"]

Output: 15

要将键和值添加到字典中,您要做的就是在方括号中指定键,然后再加上等号和值。

coffee_inventory["Medium Roast"] = 21

因此,现在的字典就是这样:

coffee_inventory = {
    "Blonde Roast": 15,
    "Medium Roast": 21
}

您将必须使用JSON来保存和检索文件。

import json

coffee_inventory = {
    "Blonde Roast": 15,
    "Medium Roast": 21
}

# Saving the JSON to a file.
# "indent=4" is for better styling.
with open("inventory.json", "w") as file:
    json.dump(coffee_inventory, file, indent=4)

# Retrieving the JSON.
with open("inventory.json", "r") as file:
    coffee_inventory = json.load(file)

print(coffee_inventory)

Output: {'Blonde Roast': 15, 'Medium Roast': 21}

最后要删除一个值,只需使用del。例如,要删除“ Blonde Roast”,请执行以下操作。

del coffee_inventory["Blonde Roast"]

这是您需要了解的有关JSON的全部信息,我相信您可以将本指南中的所有内容连接到您的程序,并使其比以前更好。