我有一个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()
但什么都没打印出来?但它没有说错误或任何东西..我试图保持这种格式。
答案 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