#python-3.x
#python-3.x
Вопрос:
Я хочу удалить строку в файле, но когда я выполняю функцию line.replace, она заменяет то, что не должно быть заменено.
Я попробовал line.replace удалить строку «SCOPE1EXPRESSION», но она удалила дополнительные строки, которые я хочу сохранить.
Входной файл выглядит следующим образом:
SCOPE1EXPRESSION
InDifferentialPairClass'DIFF100'
TOPLAYER_PREFGAP
6.2992mil
BOTTOMLAYER_PREFGAP
6.2992mil
SCOPE1EXPRESSION
InDifferentialPairClass'DIFF90'
TOPLAYER_PREFGAP
4.4882mil
BOTTOMLAYER_PREFGAP
4.4882mil
Затем я пытаюсь line.replace («SCOPE1EXPRESSION»,»») удалить его:
'''
infile = open(('All_Rules1.txt'),'r')
outfile = open('All_Rules2.txt','w ')
for line in infile:
line = line.replace("SCOPE1EXPRESSION","")
if pattern.search(line):
outfile.write(line)
infile.close()
outfile.close()
sys.stdout.flush()
'''
и в результате получается:
InDifferentialPairClass'DIFF100'
TOPLAYER_PREFGAP
BOTTOMLAYER_PREFGAP
InDifferentialPairClass'DIFF90'
TOPLAYER_PREFGAP
BOTTOMLAYER_PREFGAP
Как я могу предотвратить удаление лишних строк?
Я ожидал, что будет удалено только «SCOPE1EXPRESSION».
Комментарии:
1. Я не думаю, что это заменяет его, я думаю, что удаляемые лишние строки не проходят
if pattern.search(line)
тест и не записываются в выходной файл.2. Вы абсолютно правы. Я использовал функцию pattern.search (строка) для создания первого файла (из очень большого файла), но не удалил ее при выполнении точных настроек. Спасибо!
3. Картер, также, когда у меня есть несколько строк, содержащих одно и то же слово, но увеличенное число, такое как test1, test2, test3… есть ли способ заменить все строки (полностью), в которых есть «test»? Я попробовал test *, но это не сработало.
4. Ознакомьтесь с re.sub