У меня проблемы с чтением файла и разделением его информации на два разных списка. Файл выглядит так:
#Sample number, nick name and features:
#Id; name; heads; eyes; mouths; legs; tails; horns; rings; thorns; scales
#List of exemplars:
ff44578jhT; strangeBug; 2; 7; 3; 5; 2; 1; 71; 235; 312
sahfhfdjbd; afgefd; 2; 8; 6; 5; 8; 9; 9; 6; 45
adhfcbidsgh; diufhek; 4; 5; 6; 8; 5; 6; 2; 3; 45
#List of samples:
k345fv78; littleMonster; 2; 4; 3; 0; 2; 1; 89; 2345; 0
dufihsd; diufhek; 4; 5; 6; 8; 5; 6; 2; 3; 45
Я могу читать его, игнорируя строку, начинающуюся с символа #, но только добавляя строки в один список. Вот код:
def readFileExamples(filename):
in_file=open(filename)
for i in range(3):
in_file.readline()
examples=[]
for line in in_file:
if '#' not in line:
ident, name, heads, eyes, mouths, legs, tails, horns, rings, thorns, scales = line.strip().split('; ')
examples.append((ident, name, heads, eyes, mouths, legs, tails, horns, rings, thorns, scales))
in_file.close()
return examples
Моя цель - составить список со всеми экзаменами и еще один список со всеми примерами. Экзамены и образцы - это не фиксированное количество строк, их может быть больше, поэтому я не могу прочитать файл в соответствии с их положением в файле.
Обычно файл CSV содержит только один набор данных.
@SagarRohankar, разве это не пропустит очередь?
@ Что в этом конкретном файле более одного набора данных
@ Inês, да, если вы continue
цикл, он будет пропущен, тогда дело в добавлении следующей строки в новый список.
@SagarRobankar Я не совсем уверен, что вы пытаетесь сказать
Итак, я удалил первые 3 строки кода пропуска, так как в любом случае он будет покрыт # skip
def readFileExamples(filename):
in_file=open(filename)
examples = []
tmp = []
for line in in_file:
if line == "#List of samples:\n":
# examples are over, we will start samples now
examples = tmp.copy()
tmp.clear()
if '#' not in line:
ident, name, heads, eyes, mouths, legs, tails, horns, rings, thorns, scales = line.strip().split('; ')
tmp.append((ident, name, heads, eyes, mouths, legs, tails, horns, rings, thorns, scales))
in_file.close()
samples = tmp.copy()
return examples, samples
if __name__ == '__main__':
print(readFileExamples('scratch.txt'))
Вы не можете добавить еще один
if
stmt для проверки#List of samples:
и после этой проверки просто добавьте строку в новый списокsamples