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

阅读 80

2022-04-03

目录

一、源文件介绍(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)

0 0 举报