0
点赞
收藏
分享

微信扫一扫

Python文件读写:实现CSV文件条件查询

女侠展昭 2022-04-03 阅读 80
python

目录

一、源文件介绍(stu.csv)

(1)文件结构及内容(stu.csv)

二、程序执行结果

(2)输出文件query.csv

(3)输出显示

三、程序源代码


一、源文件介绍(stu.csv)

(1)文件结构及内容(stu.csv)

学号姓名性别年龄专业备注
1122101张三118发电1朱春强1
1122102张三219发电2朱春强2
1122103张三320发电3朱春强3
1122104张三418发电4朱春强4
1122105张三519发电5朱春强5
1122106张三620发电6朱春强6
1122107张三718发电7朱春强7
1122108张三819发电8朱春强8
1122109张三920发电9朱春强9

二、程序执行结果

(2)输出文件query.csv

学号姓名年龄专业
1122102张三219发电2
1122103张三320发电3
1122105张三519发电5
1122106张三620发电6
1122108张三819发电8
1122109张三920发电9

(3)输出显示

runfile('E:/PythonStudy/test/Readcsv.py', wdir='E:/PythonStudy/test')
文件已打开,继续执行条件OK!

数据处理完毕...共处理6个记录。

三、程序源代码

# -*- coding: utf-8 -*-
"""
Created on Sun Apr  3 09:42:08 2022

@author: zhuchunqiang
"""

import os,sys

try:
    
    infile = open("stu.csv","r",encoding="gbk")#支持中文
    outfile = open("query.csv","w+",encoding="gbk");
    #infile = open("stu.csv","r",encoding="utf-8")
    #outfile = open("query.csv","w+",encoding="utf-8");
    
except FileNotFoundError as err:
    print("file not exist,exit");
    print(err)
    
    sys.exit();
    
except:
    print("Unexpected Error!");
    sys.exit();
    
else:
    print("文件已打开,继续执行条件OK!")
    
    #开始循环处理文件内容...
    iNumLine = 0 #输入文件第一行为文件头,包含了字段名称
    while True:
        try:
            line_raw = infile.readline();
            if (not line_raw):#文件结尾,退出循环
                break;
                
            line = line_raw.strip()#去除前后空格
            if(line==""):continue #忽略空行
        
            #处理数据
            fields = line.split(sep=",")
            if(iNumLine==0): #写入挑选的字段名称
                lineInfo = fields[0]+","+fields[1]+","+fields[3]+","+fields[4]+"\n"#os.linesep
                outfile.write(lineInfo)
                iNumLine += 1;
                continue;
                
            age = int(fields[3])#年龄
            if(age>18 and age<=20):#挑选条件
                lineInfo = fields[0]+","+fields[1]+","+fields[3]+","+fields[4]+"\n"#os.linesep
                outfile.write(lineInfo)
                iNumLine += 1;
            else:
                continue
            
        except ValueError as err:
            print("\nValueError is occured:",err,end="\n")
            
        except:
            print("Unexcepted error:")
            
    #end of while loop...
    
finally:
    if('infile' in dir()):
        infile.close()
        
    if('outfile' in dir()):
        outfile.close()
        
print("\n数据处理完毕...共处理%d个记录。" %(iNumLine-1)) #有一行文件头
举报

相关推荐

0 条评论