不一樣的數字之間使用 空格「 」,「$」,"*"等隔開,支持帶小數點的字符串
NumArray=str2num(LineString,comment='#')
將字符串中的全部非Double類型的字符所有替換成空格
以'#'開頭直至行尾的內容被清空
返回一維numpy.array數組數組
import numpy import scipy def str2num(LineString,comment='#'): from io import StringIO as StringIO import re,numpy NumArray=numpy.empty([0],numpy.int16) NumStr=LineString.strip() #~ ignore comment string for cmt in comment: CmtRe=cmt+'.*$' NumStr=re.sub(CmtRe, " ", NumStr.strip(), count=0, flags=re.IGNORECASE) #~ delete all non-number characters,replaced by blankspace. NumStr=re.sub('[^0-9.e+-]', " ", NumStr, count=0, flags=re.IGNORECASE) #~ Remove incorrect combining-characters for double type. NumStr=re.sub('[.e+-](?=\s)', " ", NumStr.strip(), count=0, flags=re.IGNORECASE) NumStr=re.sub('[.e+-](?=\s)', " ", NumStr.strip(), count=0, flags=re.IGNORECASE) NumStr=re.sub('[e+-]$', " ", NumStr.strip(), count=0, flags=re.IGNORECASE) NumStr=re.sub('[e+-]$', " ", NumStr.strip(), count=0, flags=re.IGNORECASE) if len(NumStr.strip())>0: StrIOds=StringIO(NumStr.strip()) NumArray= numpy.genfromtxt(StrIOds) return NumArray if __name__ == "__main__": str = input("Enter your input: "); donser=str2num(str) print(donser)