Ввод каждого значения функции set () в python в новую строку в CSV-файле - PullRequest
0 голосов
/ 02 ноября 2018

У меня 100 000 слов в результате установки функции в Python 3 NLTK.

word_list1_total=set(words1_total)

Я хочу записать word_list1_total в CSV-файл. Затем я хочу открыть этот CSV-файл вместе с другими аналогичными CSV-файлами и выполнить функции word_tokenize () и set () для комбинаций этих CSV-файлов. Проблема в том, что я могу легко написать word_list1_total, выполнив это

with open('C:\\My_folder\\csv_file1.csv', 'a', newline='', encoding='utf-8-sig') as csvfile:
            writer = csv.writer(csvfile, delimiter=',',quoting=csv.QUOTE_MINIMAL)
            writer.writerow(word_list1_total)

Однако созданный затем файл csv_file1.csv имеет размер 7 МБ и 100 000 слов в одной строке в CSV-файле. Этот CSV-файл становится невозможным для использования из-за длины этой строки.

Как сделать этот файл пригодным для использования? Если бы 100 000 слов были в 100 000 строк по 1 слову в каждом, то, я думаю, это было бы более удобным. Есть ли способ, которым при создании этого CSV-файла я могу записать каждое слово в новую строку в CSV-файле, чтобы вместо того, чтобы выглядеть так:

word_1,word_2,word_3,...word_100000

это выглядит так

word_1,
word_2,
word_3,...
word_100000

Я пишу свою первую программу на Python. Поэтому, пожалуйста, помогите.

1 Ответ

0 голосов
/ 02 ноября 2018

Вы можете перебирать свой список слово за словом и записывать каждое слово в отдельную строку. Используя цикл for, это будет выглядеть следующим образом:

with open('C:\\My_folder\\csv_file1.csv', 'a', newline='', encoding='utf-8-sig') as csvfile:
            writer = csv.writer(csvfile, delimiter=',',quoting=csv.QUOTE_MINIMAL)
            for word in word_list1_total:
                writer.writerow([word])

Редактировать: обратите внимание, что каждое слово заключено в список, чтобы предотвратить сохранение каждого отдельного символа в отдельном столбце.

...