我有一个包含文件位置的配置文件,我想要做的是收集用户输入,如果该输入在文件中.. 从文件中删除它。 这就是我到目前为止......
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()
任何帮助表示赞赏。 感谢
答案 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'。 第三行:如果条件正常则写入行。