запись элементов списка в виде строк в .gz в python - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть список с именем rare_seq следующим образом.

rare_seq=['NNGGGCGACAGAC','NNGGGCGACAGAC','CCCTTGTTCAGAT]

print(len(rare_seq))=3

Моя цель - сохранить элементы списка rare_seq в .gz файл.

Я попробовал следующий способ.

f = gzip.open('rare_seq.txt.gz', 'wt')
for line in rare_seq:
    f.writelines(line)
f.close()

Это сохраняет список как одну строку, а не как три отдельные строки.

Когда я использую команду zcat длясм. содержимое rare_seq.txt.gz, я получаю следующий вывод.

zcat rare_seq.txt.gz >> NNGGGCGACAGACNNGGGCGACAGACCCCTTGTTCAGAT

Все элементы в списке находятся в одной строке.

Мой желаемый вывод:

zcat rare_seq.txt.gz >> 
NNGGGCGACAGAC
NNGGGCGACAGAC
CCCTTGTTCAGAT

и

zcat rare_seq.txt.gz | wc -l >> 3

Ответы [ 2 ]

2 голосов
/ 26 сентября 2019

writelines записывает несколько строк.write пишет одну строку.Таким образом, либо

for line in rare_seq:
    f.write(line + "\n")

, либо

f.writelines(line + "\n" for line in lines)
1 голос
/ 26 сентября 2019

Добавить символ новой строки \n

f = gzip.open('rare_seq.txt.gz', 'wt')
for line in rare_seq:
    f.write(line+"\n") #newline character here
f.close()
...