我有一个从文本文件(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文件中添加另一列。该列应在 列表 中逐行附加文本。
答案 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()