根据用户输入删除文件中的条目。

时间:2017-11-23 08:21:24

标签: python python-3.x

我有一个包含文件位置的配置文件,我想要做的是收集用户输入,如果该输入在文件中.. 从文件中删除它。 这就是我到目前为止......

parser = argparse.ArgumentParser()
parser.add_argument('-r', action='store_true')
args = parser.parse_args()

if args.r:
        f = open('config.dat', 'r')
        remove_contents = f.read()
        #How to read input from user input and remove line from config.dat
        f.close()

任何帮助表示赞赏。 感谢

2 个答案:

答案 0 :(得分:0)

文本文件不像您当前那样管理数据的最佳方式。你基本上必须阅读内存中的所有内容然后重写它。这是一个解决方案。

#Read Content
f = open("config.dat","r")
lines = f.readlines()
f.close()

#Write it back, but skip the line which should be deleted
f = open("config.dat","w")
for line in lines:
    print line
    if line!="ruhuru"+"\n": #Replace this string with your arg var
        f.write(line)
f.close()

config.dat文件的内容如下:

blabla
ruhuru
gugug
kukuku

答案 1 :(得分:0)

首先,您只是为了阅读而打开文件。如果你想改变文件中的任何内容,请使用argue'r +'打开它。像这样:

f = open('config.dat', 'r+')

之后,您必须将配置文件拆分为行。

remove_contents = remove_contents.split('\n')

如果检查行内容输入'args',你可以像这样使用loope。

for line in remove_contents:
    if line != args:
        f.write(line + '\n')

第一行:读取remove_contents中分割为行的每一行。 第二行:检查行是否不满足'args'。 第三行:如果条件正常则写入行。