如何将第一个列表中的每个元素与第二个列表中的整个元素进行比较?

2024-09-29 03:35:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python很陌生,所以我需要你的帮助。我的csv文件包含:

  Name           Movie_title            Comments
  Mark           toy story                love
  Sam            Grumpy Old Men           cool 
  Mark           Grumpy Old Men           Hate it
  Sam            toy story                didn't like it

我创建的列表只包含名称,不包含重复项: 姓名=['马克,山姆'] 因此,我想创建一个带有电影标题的文本文件(例如,toy story.txt)包含该电影中的所有注释

玩具总动员.txt

马克——玩具总动员(喜欢这部电影)
山姆——玩具总动员(不喜欢)

脾气暴躁的老人.txt

山姆——脾气暴躁的老人(酷)
马克——脾气暴躁的老人(讨厌)

with open('data.csv', 'rt') as f:
 reader = csv.reader(f, delimiter=',')
  next(reader)# skip header
  for row in reader:
    for name in names:
       if name == row[0]:
         for i in row[0]:
          txt = open(os.path.join(dir_name, names + ".txt"),'w+')
          newlist.append(name+row[2])
          txt.write(newlist)

任何想法


Tags: csvnameintxtfor电影readerrow
1条回答
网友
1楼 · 发布于 2024-09-29 03:35:16

简单一点。因为每一行都有字段name、movie和comment(分别是第[0]行、第[1]行和第[2]行),所以您可以直接从获取的行写入所有内容:

#!/bin/python
import csv
with open('data.csv', 'rt') as f:
  reader = csv.reader(f, delimiter=',')
  next(reader)# skip header
  for row in reader:
    with open(row[1]+".txt","a") as mov:
      mov.write(row[0]+"   "+row[1]+" ("+row[2]+")\n")

相关问题 更多 >