根据年份在Python中打印.csv文件?

时间:2016-11-01 15:13:07

标签: python csv

我有一个CSV文件。

每行包含以逗号分隔的数据;每一行都以 一个新的线条角色。所以在我的文件中,每行的第一个数据条目 是一年,该系列的第二个条目是电影的标题。

例如:

1990, Tie Me Up! Tie Me Down!

所以,它只有一堆年,然后是电影片。 我的问题是,我如何在1990年之前制作电影片名? 如下所示:

2015, Spongebob movie

不会打印。

到目前为止,我有:

f = open("filmdata.csv","r",encoding="utf-8")
for line in f:
    entries = line.split(",")
    if entries in f < 1990 :
        print(line)
f.close()

但什么都没打印出来?但它没有说错误或任何东西..我试图保持这种格式。

3 个答案:

答案 0 :(得分:1)

虽然之前的答案适用于您的通用案例,但在使用CSV时使用Python的csv模块更好。它更具可扩展性,可以处理更复杂的情况(比如使用逗号转义引号和数据),并且非常易于使用。

以下代码段应该适用于您的情况:

import csv

with open('filmdata.csv', 'r') as csvfile:
    data = csv.reader(csvfile, delimiter=',', encoding='utf-8')
    for year, movie in data:
        if int(year) < 1990:
            print (year, movie)

您当然可以修改print以使用任何格式。如果你想用逗号分隔,这将有效:

print('{}, {}'.format(year, movie))

答案 1 :(得分:0)

试试这个:

f = open("filmdata.csv","r",encoding="utf-8")
for line in f:
    entries = line.split(",")
    if int(entries[0]) < 1990 :
        print(line)
f.close()

答案 2 :(得分:0)

您是否尝试过使用Pandas?我制作了一个带有2个colums(年份,标题)的movie.csv文件。

import pandas as pd
movies = pd.read_csv('movie.csv',sep=',',names=["year","title"])

电影数组的输出:

    year    title
0   1990    Movie1
1   1991    Movie2
2   1992    Movie3
3   1993    Movie4
4   1994    Movie5
5   1995    Movie6
6   1996    Movie7
7   1997    Movie8
8   1999    Movie9
9   2000    Movie10

让我们说我们希望看到1994年的所有电影:

movies[movies['year']> 1994]

   year    title
5  1995   Movie6
6  1996   Movie7
7  1997   Movie8
8  1999   Movie9
9  2000  Movie10