liorylee 发表于 2015-11-16 10:19:12

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 *****

liorylee 发表于 2015-11-16 10:23:38

对了,也可以用MATLAB实现上面的功能。不过,从MATLAB那边转过来之后,就回不去了…… 原因吗,你懂得!PS:真心不想用破解版了!

奋斗品格 发表于 2015-11-17 09:52:34

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 发表于 2015-11-17 10:49:58

小橙子19910719,想要查看本帖隐藏内容

苦哈哈 发表于 2015-12-15 21:38:18

倾角一下,看看怎么样

Joecy 发表于 2015-12-17 16:17:49

具体做什么的

fanglzhou 发表于 2015-12-18 00:04:13

谢谢

chase 发表于 2016-1-6 08:54:32

!!!!!!!!!!!!!!

秋水南雁 发表于 2016-1-6 10:49:56

{:9_241:}

黎明晨曦 发表于 2016-1-6 16:33:55

-----------------------------------嘿嘿,我是隐藏分割线……--------------------------------------------------------------------------------

65230215 发表于 2016-1-7 17:10:11

哈哈哈

木子20140216 发表于 2016-1-11 14:14:08

{:5_90:}

xiaoshuai007 发表于 2016-1-11 15:31:20

学习学习

ap0405209 发表于 2016-1-11 16:16:00

{:5_94:}{:5_94:}

cobinzhang 发表于 2016-1-11 16:37:48

一起学习啊,正好需要处理此类数据的程序

zhangqingjie 发表于 2016-1-12 21:12:55

,txt 转为.py

waltersky 发表于 2016-3-7 21:53:54

有用啊 学习学习

lujun19891031 发表于 2016-3-8 10:17:49

{:10_281:}{:10_281:}{:10_281:}{:10_281:}

yueye1104 发表于 2016-3-9 09:53:30

向前辈学习

BlackMan 发表于 2016-3-31 21:49:39

不错
页: [1] 2 3 4 5 6 7 8 9
查看完整版本: Python读取txt数据文件,并作图