У меня есть файл базы данных "db.txt" в следующем формате:
"sg_number":1,"blablabala"....
"sg_number":2,"blablabala"....
"sg_number":10,"blablabala"....
"sg_number":9,"blablabala"....
и т. Д.
Я хочу удалить все строки, содержащие '' sg_number": i ', для i в диапазоне (1, 8) и вывода оставшихся строк в другой файл" db_filtered.txt "
Поэтому я написал следующий код:
infile = open("db.txt", "r")
newopen = open('db_filtered.txt', 'w')
for i in range(1,8):
a='"sg_number":'+ str(i) + ','
for line in infile :
if a in line:
line = line.replace('.' , '')
else:
newopen.write(line)
newopen.close()
Однако в сгенерированном db_filtered.txt все еще есть все в db.txt.Я ожидаю удаления строк со значением «sg_number» меньше 9.
Я заметил, что удаление «+», «в строке 6 приводит к удалению любой строки, содержащей« sg_number ».«: 1, это строка 1 и 3. Но строка 2, которая удовлетворяет условию« i в диапазоне (1, 8) », не удаляется.
Могу ли я знать, что здесь не так и какие исправления мне следует внести?сделать для кода, чтобы сделать то, что он должен делать?
Большое спасибо!