import numpy as np
stuff =' 57107 1 1589 1 2201-1 1 1 1-1 111-1-1-1 3991555 1 2 1 1 695 0A65 -1 1 1 1 2-1-1 24546-1-1 -1 -1-1-1-1-1-1 2 1-155- 1 2 1 2 6 240 1 8 9 1 1-1 1 1 1 2 1 2 57 57 57 1 0 0 2 1 1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 2-170-1-1 70-1-1-1-1 2-1 14080-1 80-1 697 2 5 5-1 2 3 5 2-1-1-1-1-1-1 -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 1-122 1 1 1 6-1-1-1 -1 1-1 1 2-1-1-1-1-1-1-1 6 4840678-1-1 -1 -1 2-1-1-1 2 4-1-1 6-143-135-1 117-1 9-1 3 1 1 1-1-1-1-1-1-1 -1 -1 -1 0-1-1 0-1-1-1 -1 0-1-1-1-1-1-1-1-1-1-1-1-1-1 3991555 0 0 3642944 3958306-1 -1-1 0 0 0 1 0-1 050 0 0 0 011 0 0 0-1-1-1-1 0 0-1 1 1 0 1 0 1 1 0 1 1 1 0 1 0 1 1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 0 0 0-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1\n 57107 1 1589 1 2201-1 1 1 1-1 111-1-1-1 3991555 1 2 1 1 695 0A65 -1 1 1 1 2-1-1 24546-1-1 -1 -1-1-1-1-1-1 2 3-154- 1 1 2 2 6 239 1 8 9 1 2-1 1 2 1 2 1 2 57 57 57 1 0 0 1 1 1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 1 22420-1 44-1-1-1-1 2-1 2-12420 44-1 -1 1 5 5-1 1 3 5 2-1-1-1-1-1-1 -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 1-119 1 1 1 2-1-1-1 -1 1-1 1 2-1-1-1-1-1-1-1 4 2630265-1-1 -1 -1 2-1-1-1 2 4-1 1 6-134-119-1 110-1 4-1 1 1 1 2-1-1-1-1-1-1 -1 -1 -1 0-1-1 0-1-1-1 -1 0-1-1-1-1-1-1-1-1-1-1-1-1-1 3991555 0 0 3991555 3998325-1 -1-1 0 0 0 1 0-1 050 0 0 0 011 0 0 0-1-1-1-1 0 0-1 1 1 0 0 0 0 1 0 1 1 1 0 0 0 1 1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 0 0 0-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1\n 57108 1 912 1 1201-1 2 1 1-1 1 2-1-1-1 4478084 1 1 6 1 695 0A65 -1 1 2-1-1-1-1 24546-1-1 -1 -1-1-1-1-1-1 2 2-122- 6-1 1 2 6 240 1 8 9 0 1-1 0 0 2 2 7 2 57 57 57 1 0 0 1 1 1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 2-140-1-1 40-1-1-111 125 2-115-1 15-1 321 2 5 5-1 2 3 3 2-1-1-1-1-1-1 -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 1-114 1 1 1 4-1 011 -1 1-1 1 4-1-1-1-1-1-1-1 2 4850889-1-1 -1 -1 2-1-1-1 2 2-1 2 8-144-142-1 118-112-1 3-1 1 1-1-1-1-1-1-1 -1 -1 -1 0-1-1 0-1-1-1 -1 0-1-1-1-1-1-1-1-1-1 1 2 2 2 4478084 0 0 4478084 4609610-1 -1-1 0 0 0 1 0-1 050 0 0 0 011 0 0 0-1-1-1-1 0 0-1 1 1 0 1 0 1 1 0 1 1 1 0 1 0 0 1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 0 0 0-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 0 0 0'
filename = 'test.dat'
writer = open(filename, mode='w')
writer.write(stuff)
writer.close()
data = np.genfromtxt(filename,delimiter = ',', dtype=None, encoding='utf-8')
运行上面的代码将在每一行文本中返回3行,但是会跳过每行开头的空白。如何包含它?
变量具有不同的位置和长度(例如,变量A在长度为2的位置32处,变量B在长度为1的位置68处),所以包含空格很重要,这样我才能正确地解析字符串。
我还坚持使用numpy genfromtxt,因为我使用的文件有时带有空字符(我尝试使用pd.read_csv(filename,dtype = None,encoding ='utf-8'))。当使用read_csv时,pandas将空字符视为行终止符,因此我丢失了空字符之后的所有文本。
答案 0 :(得分:0)
使用numpy loadtxt而不是genfromtxt解决了该问题。
编辑:根据@hpaulj的建议,使用filename.readlines()会更适合我要执行的操作。