Я пытаюсь фильтровать текстовый файл на основе этой строки в Python:Фильтр по строке в питона
'2/2(100%)'
'2/2(100%)'
'2/3(67%)'
'1/2(50%)'
'3/3(100%)'
'2/3(67%)'
'3/3(100%)'
'2/3(67%)'
'7/9(78%)'
'17/18(94%
Я только сохранить строки, где число после /
больше или равно 5. Мне удалось получить информацию о строках в списке, который я затем разделил на ('/')
и сохранил первый элемент. Я снова разделил это значение на ('(')
и сохранил нулевой элемент от этой операции, которая является номером. Я преобразовал число в int и использую его для оператора if if (if number >= 5, writerow()
). Но код не работает прямо сейчас. Это мой код, у меня есть два различных способа преобразовать число в междунар:
methyl = []
with open("zr518_13_CpG_meth.bed", 'r') as txtfile, open("zr518_13_CpG_meth_5X.bed", "w") as newfile:
reader = csv.reader(txtfile, delimiter = '\t')
textwriter = csv.writer(newfile, delimiter = '\t')
for row in reader:
methyl.append(row[3])
fragments = [elem.split('/')[1] for elem in methyl]
numbers = [elems.split('(')[0] for elems in fragments]
# new_numbers = []
# for n in numbers:
# new_numbers.append(int(n))
for i in range(0,len(numbers)):
numbers[i]=int(numbers[i])
if i > 4:
textwriter.writerow(row)
Каким образом это не работает? –
Фильтрация не работает, строки со значениями меньше 5 все еще записываются в новый файл, в основном весь файл записывается снова, я не знаю, сохраняется ли целочисленное значение. – Deep