Напишите текстовый файл для каждой строки в CSV - PullRequest
0 голосов
/ 16 июня 2020

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

Name  Seq
a     atcg
b     ggct
c     ccga

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

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

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 Ответ

1 голос
/ 16 июня 2020

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

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')])
...