从文本列表中写入Excel文件的列

时间:2019-05-04 21:45:53

标签: excel python-3.x

我有一个从文本文件(train.txt)中收集的文本列表(reviews_train)。

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",....]

我还有另一个result.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 :(得分:0)

使用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)

手里拿着三元素的行, 你可以例如writerow()

编辑

您问题中的open()提到了'r'encoding='utf8', 之所以取消,是因为open()应该默认使用它们。

显然您没有使用代码中提到的python3, 也许是一个古老的版本。 PEP 529和540建议,由于3.6窗口将默认为UTF-8, 就像大多数平台一样。 如果您的主机设法默认为CP1252之类的疯狂内容, 那么您肯定会想要覆盖它:

    return open(infile, encoding='utf8').readlines()