Разделить значения CSV в одной строке на отдельные строки - PullRequest
0 голосов
/ 26 марта 2020

У меня есть сценарий Python, который выводит текстовый файл с тысячами случайных имен файлов в списке через запятую, все в одной строке.

randomFileName1, randomFileName2, randomFileName3, etc.

Я хочу получить каждое значение в списке и поместите его в отдельную строку в новом файле CSV.

randomFileName1
randomFileName2
randomFileName3

Я пробовал некоторые варианты awk, но безуспешно. Каков наилучший способ переместить эти значения в их собственные строки?

Ответы [ 3 ]

1 голос
/ 26 марта 2020

С GNU sed:

sed 's|, |\n|g' file

Или, для портативной альтернативы,

sed 's|, |\
|g' file
0 голосов
/ 26 марта 2020

Я действительно смог понять это с помощью модуля import csv в Python. Я уверен, что это можно немного почистить, но оно делает то, что мне нужно.

import csv

with open('parse.txt', 'r') as csv_file:
    csv_reader = csv.reader(csv_file)

    with open('parse_write.csv', 'w', newline='') as new_file:
        csv_writer = csv.writer(new_file, delimiter='\t')

        for line in csv_reader:
            for file_name in line:
                csv_writer.writerow(file_name)
0 голосов
/ 26 марта 2020

(г) awk:

echo randomFileName1, randomFileName2, randomFileName3 | \
   awk  '{ split($0,a,/,[ ]*/); for (i in a) { print a[i] }}'

python:

import re
a="randomFileName1, randomFileName2, randomFileName3"
b=re.split(r',[ ]*',a)
for i in b:
   print(i)

(вдохновение из: Расщепление строки в Python с использованием регулярных выражений )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...