Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从文件中获取和读取数据时出错_Python_File_Search_Csv - Fatal编程技术网

Python 从文件中获取和读取数据时出错

Python 从文件中获取和读取数据时出错,python,file,search,csv,Python,File,Search,Csv,我正在尝试创建一个程序,从.csv文件中读取有关电影时间的信息,用户可以在其中按放映月份、制作电影的公司和电影名称搜索电影时间 该文件的格式如下: 电影名称、日期、电影院、电影院邮编、制作公司、成本 每行 我需要搜索的唯一信息是日期、制作公司和电影名称 这段代码的第一个问题是,当我搜索一家公司的电影时,只显示文件中该公司的第一部电影,我想显示所有电影 我遇到的第二个问题是,我需要按月搜索电影,但文件中日期的格式是dd/mm/yy,我不确定如何只搜索月份而忽略日期和年份 如果有人能解决这两个问题中

我正在尝试创建一个程序,从
.csv
文件中读取有关电影时间的信息,用户可以在其中按放映月份、制作电影的公司和电影名称搜索电影时间

该文件的格式如下:

电影名称、日期、电影院、电影院邮编、制作公司、成本

每行

我需要搜索的唯一信息是日期、制作公司和电影名称

这段代码的第一个问题是,当我搜索一家公司的电影时,只显示文件中该公司的第一部电影,我想显示所有电影

我遇到的第二个问题是,我需要按月搜索电影,但文件中日期的格式是
dd/mm/yy
,我不确定如何只搜索月份而忽略日期和年份


如果有人能解决这两个问题中的任何一个,我将非常感激并提前表示感谢。

对于您的第一个问题,您的代码似乎是正确的,我已经对其进行了测试,它确实打印了一个列表,其中有与公司匹配的内容:

>>> company = "one"
>>> moviedata = [("one","two"), ("two","one"), ("two","three")]
>>> print([s for s in moviedata if (company) in s])
[('one', 'two'), ('two', 'one')]
我只能建议打印出来并检查您的电影数据是否存储在元组列表中

对于第二个问题,只需对必须检索的月份数据进行切片:

>>> "03/04/2014"[3:5]
'04'
代码示例:

>>> moviedata = [("one","two"), ("two","one"), ("two","three")]
>>> moviedata[1]
('two', 'one')
>>> moviedata[1][1]
'one'
>>> moviedata[1][1][:2]
'on'

您可以粘贴输入文件的一部分作为示例吗?第一个是冻结的,2014年4月3日,IMAX,LN3 6SD,迪斯尼,5.49英镑。这一行看起来不错,不过请注意其他行中是否有多余的空格。如果你看到一些,你可以用
strip
方法在你的代码中处理它们。我不知道它是如何工作的,但感谢您帮助e解决这个问题。对于您的第二个问题,只需将日期切分为月份,编辑我的注释中的代码部分。我尝试过这样做,但问题是每行都作为一个元素读取,所以moviedata[0:3]返回文件的前三行。您需要获取元素,然后对其进行切片,如果月份是示例中编辑的第一个数字(borken american format^^^),请尝试moviedata[2][3:5]或moviedata[2][0:3]。