只打印在.csv文件中的某些行
我有一个包含类似于此生领域的最新.csv文件" title="csv文件">csv文件:只打印在.csv文件中的某些行
John,Smith,34 La La Lane,14/03/85,[email protected] Sarah,Second,42 Wallaby Way,11/06/92,[email protected]
Third,Example,99 Peacock Terrace,04/12/89,[email protected]
我想打一个程序,只打印文件中的行在某个月份出生的参赛作品(在这种情况下,该月份是在第一个斜杠之后,即dd/mm/yy)。
因此,如果需要的月份是3月份,它会打印John Smith的条目。
任何帮助将是巨大的,我一直在挣扎了一会儿
回答:
我不知道你在挣扎的问题的哪一部分,所以我会给出一个有点笼统的回答。 Python有您可以使用这样一个CSV阅读:
import csv desiredMonth = 3
with open('people.csv', 'rb') as csvfile:
content = csv.reader(csvfile, delimiter=',')
for row in content:
month = int(row[3].split('/')[1])
if month == desiredMonth:
# print the row or store it in a list for later printing
row
就已经被分离出来,你到一个列表,所以row[3]
将是生日。 split()
然后将月份分成小块,[1]
给出第二块,即月份。将它转换为int
是个不错的主意,因此您可以轻松地将其与任何您想要的月份进行比较。
回答:
import csv with open('yourfile.csv', 'rb') as csvfile:
spamreader = csv.reader(csvfile, delimiter=',')
for row in spamreader:
date = row[3]
month = date.split('/')[1]
if int(month) >= YOUR_MONTH_HERE
print row
回答:
多达教程类型,因为我可以把它付诸表决:-)
somecsvfile=r'/home/me/Desktop/txt.csv' the_month_you_are_looking_for = 6 # as in june.
with open(somecsvfile, 'r') as fi:
for line in fi:
list_from_text = line.split(',')
bday = list_from_text[3]
bmonth = int(bday.split('/')[1])
if bmonth == the_month_you_are_looking_for:
print (line)
回答:
这里有一个不同的方法......对于CSV文件时,Python包csvkit
安装了大量的命令 - 这些工具可让您轻松切割和切割.csv文件。
$ pip install csvkit
这将安装一个名为csvgrep
(等)的命令。
$ csvgrep -c 4 -r '\d{2}/03' yourfile.csv First,Last,Address,Birthdate,Email
John,Smith,34 La La Lane,14/03/85,[email protected]
有一点要注意的是,csvkit
假定所有的.csv文件有标题行。这就是为什么csvgrep
的结果显示标题行。这也意味着,你将有一个头添加到你这样的数据文件:
First,Last,Address,Birthdate,Email John,Smith,34 La La Lane,14/03/85,[email protected]
Sarah,Second,42 Wallaby Way,11/06/92,[email protected]
Third,Example,99 Peacock Terrace,04/12/89,[email protected]
命令行参数的说明:
$ csvgrep -c 4 -r '\d{2}/03' yourfile.csv -c specifies which column you want to search
-r specifies the regular expression you want to match in the column
正则表达式“^ \ d {2}/03 '将匹配以2位开头的字符串,然后是'/',然后是'03'月份。
查看csvkit tutorial了解更多信息。
以上是 只打印在.csv文件中的某些行 的全部内容, 来源链接: utcz.com/qa/267302.html