Напишите текстовый файл для каждой строки в CSV

У меня есть файл CSV в следующем формате:

Name  Seq
a     atcg
b     ggct
c     ccga

Я хочу создать отдельные текстовые файлы для каждой строки, где имя файла основано на одном столбце, а содержимое файла основано на другом столбце.

В настоящее время у меня есть этот код:

import csv
with open('prac.csv') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        file_name ='{0}.txt'.format(row['name']) 
        with open(file_name, 'w') as f:
            pass

При этом создаются текстовые файлы со значениями в столбце "Имя" для каждой строки. Однако я не уверен, как записать столбец "Seq" в каждый текстовый файл.

1 ответ

Вы очень близки:

import csv
with open('prac.csv') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        print(row)                              #you can remove this, see below
        file_name ='{0}.txt'.format(row['Name']) 
        with open(file_name, 'w') as f:
            f.write(row['Seq'])

Я добавил print заявление, чтобы показать, что каждый "row"есть; вы уже нажали Name при создании file_name, вам просто нужно ввести ключ Seq при написании:

OrderedDict([('Name', 'a'), ('Seq', 'atcg')])
OrderedDict([('Name', 'b'), ('Seq', 'ggct')])
OrderedDict([('Name', 'c'), ('Seq', 'ccga')])
Другие вопросы по тегам