Я пытаюсь изменить некоторые строки в текстовом файле, не затрагивая другие строки. Это то, что находится внутри текстового файла под названием «text.txt»Чтение/запись текстового файла
this is a test1|number1
this is a test2|number2
this is a test3|number2
this is a test4|number3
this is a test5|number3
this is a test6|number4
this is a test7|number5
this is a test8|number5
this is a test9|number5
this is a test10|number5
Моя цель состоит в том, чтобы изменить линию 4 и 5 строки, но сохранить тот же отдых.
mylist1=[]
for lines in open('test','r'):
a=lines.split('|')
b=a[1].strip()
if b== 'number3':
mylist1.append('{}|{} \n'.format('this is replacement','number7'))
else:
mylist1.append('{}|{} \n'.format(a[0],a[1].strip()))
myfile=open('test','w')
myfile.writelines(mylist1)
Несмотря на то, что код работает, мне интересно, есть ли у него лучший и эффективный способ сделать это? Можно ли прочитать файл только по номеру строки?
Вы не можете писать «линию» в произвольном месте, но если вы хотите знать, номер текущей строки при чтении, вы можете использовать 'enumerate', как в' for index, line in enumerate (open ('test', 'r')): '. Это может помочь, если вы действительно хотите идентифицировать строки по номерам, а не по местоположению.BTW: писать «для __lines__», как вы делаете, вводит в заблуждение - то, что вы получаете каждый раз через цикл, является линией __single__. – kampu