需要输入数据路径,分隔符,读取模式(1表示整体读取,2表示按行读取,每一行是一个list存放在datalist中)
数据保存在datalist中
import re
import unicodedata
v_filename="C:/Users/mastery/Desktop/标定块测量分析/data.txt"#数据文件名称
v_split='\n|\r|\t|,|;|。|,|;| '#以该字符串内任意两个该字符为间隔算一个单元
v_readmode=1#1-表示整体读取 2-表示按行读取
datalist=[]#结果保存
def is_number(s):
try:
float(s)
return True
except ValueError:
pass
try:
unicodedata.numeric(s)
return True
except (TypeError, ValueError):
pass
return False
#读取文件
with open(v_filename, 'r') as f1:
if v_readmode == 1:
filecontent = f1.read()
datalist=[ float(i) for i in re.split(v_split,filecontent) if is_number(i)]
elif v_readmode == 2:
temp = f1.readlines()
temp= [[float(i) for i in re.split(v_split,j) if is_number(i)] for j in temp if len(j) != 0]
datalist = [i for i in temp if len(i) !=0]