Я изучаю Python и создал эту программу, но это не сработает, и я надеюсь, что кто-то найдет ошибку!Удалить строки, начинающиеся с уникального номера
У меня есть файл, который имеет записи, как это:
0 Kurthia sibirica Planococcaceae
1593 Lactobacillus hordei Lactobacillaceae
1121 Lactobacillus coleohominis Lactobacillaceae
614 Lactobacillus coryniformis Lactobacillaceae
57 Lactobacillus kitasatonis Lactobacillaceae
3909 Lactobacillus malefermentans Lactobacillaceae
Моя цель состоит в том, чтобы удалить все строки, которые начинаются с числом, которое происходит только один раз во всем файле (уникальные номера), а также сохранить все строки, начинающиеся с числа, дважды повторяющегося в новом файле. Это моя попытка. Он еще не работает (когда я позволяю работу print
линии, одна строка из целых файлов повторяется 3 раза, и это все):
#!/usr/bin/env python
infilename = 'v35.clusternum.species.txt'
outfilename = 'v13clusters.no.singletons.txt'
#remove extra letters and spaces
x = 0
with open(infilename, 'r') as infile, open(outfilename, 'w') as outfile:
for line in infile:
clu, gen, spec, fam = line.split()
for clu in line:
if clu.count > 1:
#print line
outfile.write(line)
else:
x += 1
print("Number of Singletons:")
print(x)
Спасибо за любую помощь!
Я думаю, вы имеете в виду 'Counter (line.split() [0] для строки в infile)'? – DSM
@ DSM да, редактирование, как мы говорим. – roippi
@roippi Спасибо за это, это прекрасно! Мне интересно, можете ли вы предложить еще одну вещь: получить подсчет количества номеров, которые были удалены. Итак, если строки, начинающиеся с '0' и' 57' из примера в моем вопросе, появились только один раз, моя «сумма чисел» будет равна 2. Я попытался сделать это и вставил 'else: print ([clu]), 'put просто печатает числа, которые были удалены. – Jen