目录
一、源文件介绍(stu.csv)
(1)文件结构及内容(stu.csv)
二、程序执行结果
(2)输出文件query.csv
(3)输出显示
三、程序源代码
一、源文件介绍(stu.csv)
(1)文件结构及内容(stu.csv)
学号 | 姓名 | 性别 | 年龄 | 专业 | 备注 |
1122101 | 张三1 | 男 | 18 | 发电1 | 朱春强1 |
1122102 | 张三2 | 女 | 19 | 发电2 | 朱春强2 |
1122103 | 张三3 | 男 | 20 | 发电3 | 朱春强3 |
1122104 | 张三4 | 女 | 18 | 发电4 | 朱春强4 |
1122105 | 张三5 | 男 | 19 | 发电5 | 朱春强5 |
1122106 | 张三6 | 女 | 20 | 发电6 | 朱春强6 |
1122107 | 张三7 | 男 | 18 | 发电7 | 朱春强7 |
1122108 | 张三8 | 女 | 19 | 发电8 | 朱春强8 |
1122109 | 张三9 | 男 | 20 | 发电9 | 朱春强9 |
二、程序执行结果
(2)输出文件query.csv
学号 | 姓名 | 年龄 | 专业 |
1122102 | 张三2 | 19 | 发电2 |
1122103 | 张三3 | 20 | 发电3 |
1122105 | 张三5 | 19 | 发电5 |
1122106 | 张三6 | 20 | 发电6 |
1122108 | 张三8 | 19 | 发电8 |
1122109 | 张三9 | 20 | 发电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)) #有一行文件头