Python读取txt数据文件,并作图
本帖最后由 liorylee 于 2015-11-16 18:31 编辑科研中经常需要作图和科学运算。如果有一个txt的数据文件,该如何导入Python中呢?比方说下面这种类型的数据文件:
wavelength,intenisty
400,325.2
401,356.9
402,369.8
...
这是一种以“,”分割的两列数据,另外还会经常遇到以Tab分割的数据,“ ”也就是“\t”;还可能会遇到多列数据的情况。下面是我自己写的一段代码,和大家做个交流,可能还有更简单的哦。大家可以多多回复,共同学习交流。
-----------------------------------嘿嘿,我是隐藏分割线……--------------------------------------------------------------------------------
**** Hidden Message ***** 对了,也可以用MATLAB实现上面的功能。不过,从MATLAB那边转过来之后,就回不去了…… 原因吗,你懂得!PS:真心不想用破解版了! import re
#Errors=['验证通过!','身份证号码位数不对!','身份证号码出生日期超出范围或含有非法字符!','身份证号码校验错误!','身份证地区非法!']
def checkIdcard(idcard):
Errors=['验证通过!','身份证号码位数不对!','身份证号码出生日期超出范围或含有非法字符!','身份证号码校验错误!','身份证地区非法!']
area={"11":"北京","12":"天津","13":"河北","14":"山西","15":"内蒙古","21":"辽宁","22":"吉林","23":"黑龙江","31":"上海","32":"江苏","33":"浙江","34":"安徽","35":"福建","36":"江西","37":"山东","41":"河南","42":"湖北","43":"湖南","44":"广东","45":"广西","46":"海南","50":"重庆","51":"四川","52":"贵州","53":"云南","54":"西藏","61":"陕西","62":"甘肃","63":"青海","64":"宁夏","65":"新疆","71":"台湾","81":"香港","82":"澳门","91":"国外"}
idcard=str(idcard)
idcard=idcard.strip()
idcard_list=list(idcard)
#地区校验
if(notarea[(idcard)]):
print Errors
#15位身份号码检测
if(len(idcard)==15):
if((int(idcard)+1900) % 4 == 0 or((int(idcard)+1900) %100 == 0 and (int(idcard)+1900) % 4 == 0 )):
erg=re.compile('{5}{2}((01|03|05|07|08|10|12)(0||3)|(04|06|09|11)(0||30)|02(0|)){3})#//测试出生日期的合法性
else:
ereg=re.compile('{5}{2}((01|03|05|07|08|10|12)(0||3)|(04|06|09|11)(0||30)|02(0|1|2)){3})#//测试出生日期的合法性
if(re.match(ereg,idcard)):
print Errors
else:
print Errors
#18位身份号码检测
elif(len(idcard)==18):
#出生日期的合法性检查
#闰年月日:((01|03|05|07|08|10|12)(0||3)|(04|06|09|11)(0||30)|02(0|))
#平年月日:((01|03|05|07|08|10|12)(0||3)|(04|06|09|11)(0||30)|02(0|1|2))
if(int(idcard) % 4 == 0 or (int(idcard) % 100 == 0 andint(idcard)%4 == 0 )):
ereg=re.compile('{5}19{2}((01|03|05|07|08|10|12)(0||3)|(04|06|09|11)(0||30)|02(0|)){3})#//闰年出生日期的合法性正则表达式
else:
ereg=re.compile('{5}19{2}((01|03|05|07|08|10|12)(0||3)|(04|06|09|11)(0||30)|02(0|1|2)){3})#//平年出生日期的合法性正则表达式
#//测试出生日期的合法性
if(re.match(ereg,idcard)):
#//计算校验位
S = (int(idcard_list) + int(idcard_list)) * 7 +(int(idcard_list) + int(idcard_list)) * 9 +(int(idcard_list) + int(idcard_list)) * 10 +(int(idcard_list) + int(idcard_list)) * 5 +(int(idcard_list) + int(idcard_list)) * 8 +(int(idcard_list) + int(idcard_list)) * 4 +(int(idcard_list) + int(idcard_list)) * 2 +int(idcard_list) * 1 + int(idcard_list) * 6 +int(idcard_list) * 3
Y = S % 11
M = "F"
JYM = "10X98765432"
M = JYM#判断校验位
if(M == idcard_list):#检测ID的校验位
print Errors
else:
print Errors
else:
print Errors
else:
print Errors 小橙子19910719,想要查看本帖隐藏内容 倾角一下,看看怎么样 具体做什么的 谢谢 !!!!!!!!!!!!!! {:9_241:} -----------------------------------嘿嘿,我是隐藏分割线……-------------------------------------------------------------------------------- 哈哈哈 {:5_90:} 学习学习 {:5_94:}{:5_94:} 一起学习啊,正好需要处理此类数据的程序 ,txt 转为.py 有用啊 学习学习 {:10_281:}{:10_281:}{:10_281:}{:10_281:} 向前辈学习 不错