【问题标题】:Slicing each line from data CSV file从数据 CSV 文件中切片每一行
【发布时间】:2017-08-24 17:00:39
【问题描述】:

我有一个如下所示的电影数据集:

1,Toy Story (1995),Adventure|Animation|Children|Comedy|Fantasy
2,Jumanji (1995),Adventure|Children|Fantasy
3,Grumpier Old Men (1995),Comedy|Romance
4,Waiting to Exhale (1995),Comedy|Drama|Romance
5,Father of the Bride Part II (1995),Comedy
6,Heat (1995),Action|Crime|Thriller
7,Sabrina (1995),Comedy|Romance
8,Tom and Huck (1995),Adventure|Children

我只想提取最后一部分(类型部分,例如冒险|动画|儿童|喜剧|奇幻)并将它们存储在列表 list[Adventure, Animation, Children, Comedy, Fantasy] 中。但是,我仍然停留在切片步骤。我不知道该怎么做,因为line[:-1] 没有切片。我使用 Python 2.7

with open(path + 'movie.csv') as f:
    for line in f:
        print line[:-1]

【问题讨论】:

    标签: python csv


    【解决方案1】:

    您的切片将返回每行的最后一个字符,因为当您以常规方式读取文件时,这些行不会被拆分。您应该使用csv 模块读取文件,该模块使用',' 分隔符自动分隔行。然后用|拆分结果。

    import csv
    with open(path + 'movie.csv') as f:
        reader = csv.reader(f, delimiter=',')
        for row in reader:
            print(row[-1].split('|'))
    

    【讨论】:

      【解决方案2】:
      with open(path + 'movie.csv') as f:
          for line in f:
              print line.split(',')[:-1].rstrip('\n').split('|')
      

      【讨论】:

        猜你喜欢
        • 2021-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-02
        • 2019-12-20
        • 2017-01-22
        • 2019-07-18
        • 1970-01-01
        相关资源
        最近更新 更多