Просто нужно добавить условие, чтобы проверить, является ли второе слово two :
with open('blah.txt', mode='r') as f, open('datafile_fixed.txt', mode='w') as g:
for line in f.readlines():
w1, w2, _, w4 = line.split()
if w2 == 'two':
g.write(w1 + ' ' + w4)
Здесь ключевая строка w1, w2, _, w4 = line.split()
.Что делает split, так это возвращает список строк после разбиения заданной строки указанным разделителем (в этом ничего, что по умолчанию относится к пробелу), поэтому он вернет список с 4 элементами ["one", "two", "three", "four"]
.
Python позволяет распаковать этот список, если вы назначаете его нескольким переменным (то же самое число, что и длина списка), поэтому, выполнив w1, w2, w3, w4 = ["one", "two", "three", "four"]
, вы назначаете "one"
на w1 , "two"
на w2 и т. д.
Тогда нам просто нужно проверить, является ли второе слово "two"
.если так, мы напишем в новом файле.В противном случае мы ничего не будем делать с этой строкой и перейдем к следующей в цикле, делая то же самое.