【问题标题】:Printing .csv files in Python depending on the year?根据年份在 Python 中打印 .csv 文件?
【发布时间】:2017-03-14 18:17:48
【问题描述】:

我有一个 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()

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

【问题讨论】:

  • 因为您还不是 S.O. 的成员。太久了,这里是:请记住,如果任何答案解决了您的问题,最好将其标记为已接受(答案左侧的大复选框)。它会给你声誉积分,它会给花时间回答它的人声誉积分,最重要的是,它会帮助未来的读者看到答案是有帮助的。请查看:meta.stackexchange.com/questions/5234/…(不仅是这篇文章,还有你未来的问题)干杯 :-)

标签: python csv


【解决方案1】:

试试这个:

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】:

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

    以下代码 sn-p 应该适用于您的情况:

    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))
    

    【讨论】:

    • @Gabriel Yes--如果 CSV 文件格式正确,例如1950, "Movie, with a comma"
    【解决方案3】:

    您是否尝试过使用 Pandas。我用 2 列(年份、标题)制作了一个 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
    

    【讨论】:

      猜你喜欢
      • 2023-03-15
      • 2019-08-06
      • 1970-01-01
      • 2022-12-14
      • 2020-09-16
      • 2020-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多