我想在python中创建任务以更新文本文件

时间:2019-01-28 09:25:44

标签: python

我想为文本文件的添加/更新/删除操作创建方法或任务。

这是我要为文本文件操作进行的操作

add(KEY,VALUE,COMMENT)
update(KEY,VALUE)
delete("KEY")

案例1:添加新密钥

add("PRODUCT_NAME","Sigma","title for product name")

我想运行上述命令,将新条目添加到TextFile.text

///添加如下所示的条目

PRODUCT_NAME|Sigma|title for product name  

案例2:更新现有密钥

update("PRODUCT_NAME","Sigma Rox")

我想运行上面的命令来更新TextFile.text中的键的值

//更新密钥的值

PRODUCT_NAME|Singma Rox|title for the product name  

案例3:删除密钥条目

delete("PRODUCT_NAME")

我想运行上面的命令从TextFile.text中删除整个条目/值

//删除键PRODUCT_NAME的条目

1 个答案:

答案 0 :(得分:1)

您需要定义addupdatedelete方法:

FILE = 'text.txt'

def add(key, value, comment):
    with open(FILE, 'a') as f:
        f.write('{}|{}|{}\n'.format(key, value, comment))

def update(key, value):
    with open(FILE, 'r+') as f:
        data = ''
        for line in f:
            if line.startswith('{}|'.format(key)):
                comment = line.split('|')[2].rstrip()
                line = '{}|{}|{}\n'.format(key, value, comment)
                data += line
            else:
                data += line
        f.seek(0)
        f.write(data.rstrip())

def delete(key):
    with open(FILE, 'r+') as f:
        data = ''
        for line in f:
            if not line.startswith('{}|'.format(key)):
                data += line
    with open(FILE, 'w') as f:
        f.write(data.rstrip())

所以它是如何工作的:

>>> add('Key1', 'Value1', 'Comment1')
Key1|Value1|Comment1
>>> add('Key2', 'Value2', 'Comment2')
Key1|Value1|Comment1
Key2|Value2|Comment2
>>> update('Key2', 'Value3')
Key1|Value1|Comment1
Key2|Value3|Comment2
>>> delete('Key2')
Key1|Value1|Comment1