使用Python,如何遍历csv文件的每一行记录的每一个字段值?并进行字段值是否符合条件的判断?

fangkanghua 2012-04-30 12:15:52
比如说,我有这样的csv数据

A,B,C,D

3,2,1,5,

4,6,0,7

1,7,5,2

我想要对D列的每一个数据进行遍历,确定D列的数据必须为0至5之间的数,如果不是则将该行的数据删除,然后对下一行进行检查。保存经过筛选以后的csv文件
...全文
1679 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tim_spac_126 2012-04-30
  • 打赏
  • 举报
回复
格式化一下

#!/usr/bin/python
# encoding: utf-8
#
# 或者用正则表达式进行过滤
#

import re
import logging

logger = logger.getLogger('parser')

def csvcontentfilter(filename, patt):
with open(filename, 'rt') as handle:
for ln in handle:
m = patt.match(ln.strip())
if m:
yield ln
else:
logger.warning('line parser fause:%s'%ln)

def mainlogic():
for ln in csvcontentfilter(
filename='thefilename',
patt=re.compile(r'''^.*,[0-5]$''',re.I|re.U|re.X)
):
dosomethingyouwant(ln)

..
tim_spac_126 2012-04-30
  • 打赏
  • 举报
回复
#!/usr/bin/python
# encoding: utf-8
#
# 或者用正则表达式进行过滤
#

import re
import logging

logger = logger.getLogger('parser')

def csvcontentfilter(filename, patt):
with open(filename, 'rt') as handle:
for ln in handle:
m = patt.match(ln.strip())
if m:
yield ln
else:
logger.warning('line parser fause:%s'%ln)

def mainlogic():
for ln in csvcontentfilter(
filename='thefilename',
patt=re.compile(r'''^.*,[0-5]$''',re.I|re.U|re.X)
):
dosomethingyouwant(ln)

..
chen_999876 2012-04-30
  • 打赏
  • 举报
回复
fileHandle=open("filename",'r')#打开文件
fileList=fileHandle.readlines()#每行都读出,放到列表中
for line in fileList:#对列表的每一行进行判断
A, B, C, D = line.split(",")
#后面的就简单了,判断D的大小,如果符合条件,则写入文件,否则跳过。
panghuhu250 2012-04-30
  • 打赏
  • 举报
回复
python标准库中有csv模块.

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧