python - CSV如何查找值并编辑其值

标签 python python-3.x

假设这是在我的 CSV 文件中

Apple        10
Banana       14
Orange       23
Watermelon   54

比方说,这是商店上周供应的水果。

所以这周,我得到了 12 个苹果,如果我的水果数量比上周大,我想用 12 代替 10。这是我到目前为止的代码,它将数据放入 csv 文件中.

def fruit():
    FruitT = input("Please type in the name of the fruit: ")
    FruitN = input("Please type in the amount of the fruit: ")



    f = open('fruitstcok.csv', 'a')
    f.write(FruitT.title()+','+str(FruitN)+'\n')
    f.close()
    print ("Success")
    fruit()

fruit()

如何才能做到,当我输入水果名称及其数量时,它会检查数量是否更大,如果是,则进行替换,如果不是,则不执行任何操作?

另外,我想知道如何将金额添加到 csv 中,如下所示。

Apple    10,12

所以在本月晚些时候,我可以通过将所有水果相加并除以列表中的数字数量来找出该月水果的平均数量。我可以使用 len 对吗?

我当然会创建两个 csv 文件。到目前为止,我知道如何读取 csv 文件并打印它们。

最佳答案

使用泡菜:

import pickle

def fruit():
        try:
            with open('fruits.pickle', 'rb') as f:
                items = pickle.load(f)
        except (ValueError,IOError) as e:
            print(e)
            items =  {'Banana': {'mon': [14], 'count': 14}, 'Apple': {'mon': [10], 'count': 10}, 'Orange': {'mon': [23], 'count': 23}, 'Watermelon': {'mon': [54], 'count': 54}}
        fruit_t = input("Please type in the name of the fruit: ")
        fruit_n = int(input("Please type in the amount of the fruit: "))
        if fruit_t in items:
            items[fruit_t]["mon"].append(fruit_n)
            if items[fruit_t]["count"] < fruit_n:
                items[fruit_t]["count"] = fruit_n
        else: # else add new fruit
            items[fruit_t] = {"mon":[fruit_n],"count":fruit_n}
        with open('fruits.pickle', 'wb') as f:
            pickle.dump(items, f)
        print(items)

就像我在评论中所说,您最初创建项目的方式及其所具有的值应该是第一次运行的默认值。

您还应该处理用户输入无效项目或未输入可转换为 int 的有效值的情况。

小写的 dicts 键并使用 fruit_t.lower() 也会更好。

打印信息:

for k in items:
     print("{} monthly  {}".format(k,items[k]["mon"]))
     print("{} total {}".format(k,items[k]["count"]))

关于python - CSV如何查找值并编辑其值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28307671/

相关文章:

javascript - 将 Selenium 引用到 javascript 按钮时遇到问题。 [Python]

python - 如何使用 matplotlib 为一组点设置动画?

python - 最终用户的计算机上是否需要 wxPython

python - 在函数内部或外部循环?

python-3.x - Pillow+numpy+unittest 给出 ResourceWarning : does this indicate a leak?

python - Jinja2 检查字典列表中是否存在值

python - 如何将 pyOpenSSL verify_cb 的 ssl 证书中的 cn 关联到生成的套接字

python - 如何以特定格式将文件作为参数传递给 Python 中的参数?

python - 属性错误 : module 'importlib._bootstrap' has no attribute 'SourceFileLoader'

python - 低特征环境的鲁棒定位