不同的数字之间使用 空格“ ”,“$”,"*"等隔开,支持带小数点的字符串
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)