Запись в столбцах файла Excel из списка текстов - PullRequest
0 голосов
/ 05 мая 2019

У меня есть список текстов (reviews_train), который я собрал из текстового файла (train.txt).

reviews_train = []
for line in open('C:\\Users\\Dell\\Desktop\\New Beginnings\\movie_data\\train.txt', 'r', encoding="utf8"):
    reviews_train.append(line.strip())

Предположим, reviews_train = ["Nice movie","Bad film",....]

У меня есть другой результат .csvфайл, который выглядит как

company     year
 a          2000
 b          2001
 .
 .
 .

Я хочу добавить еще один текст столбца к существующему файлу, чтобы он выглядел примерно так:

company     year     text
 a          2000     Nice movie
 b          2001     Bad film
 .
 .
 .

Элементы списка должны быть добавленыв новом столбце один за другим.

Я действительно новичок в Python.Может кто-нибудь сказать, пожалуйста, как это сделать?Любая помощь действительно приветствуется.

РЕДАКТИРОВАТЬ: Мой вопрос не только о добавлении еще одного столбца в файл .csv.Столбец должен содержать тексты в списке с добавленной строкой.

РЕДАКТИРОВАТЬ: я использовал решение, данное @J_H, но я получаю эту ошибку enter image description here

1 Ответ

0 голосов
/ 05 мая 2019

Использование zip () :

def get_rows(infile='result.csv'):
    with open(infile) as fin:
        sheet = csv.reader(fin)
        for row in sheet:
            yield list(row)


def get_lines(infile=r'C:\Users\Dell\Desktop\New Beginnings\movie_data\train.txt'):
    return open(infile).readlines()


for row, line in zip(get_rows(), get_lines()):
    row.append(line)
    print(row)

Имея в руках эти 3-элементные строки, вы можете, например, writerow () .

EDIT

open() в вашем вопросе упоминает 'r' и encoding='utf8', которые я исключил, поскольку open() должен по умолчанию использовать их.

Очевидно, вы не используетеPython3 упоминается в вашем теге, или, возможно, древняя версия.PEP 529 и 540 предполагают, что начиная с версии 3.6 окна по умолчанию будут UTF-8, как и большинство платформ.Если ваш хост по умолчанию настроен на что-то сумасшедшее, например CP1252, то вам, безусловно, захочется изменить это:

    return open(infile, encoding='utf8').readlines()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...