0
我想讀取一個很差的文本文件,因爲每行中的值有時不能用空格或逗號分隔(所以我不能使用.split()) 。我想像你在FORTRAN中那樣閱讀它,在那裏我確切地告訴它每個值在哪裏。這是我正在嘗試的。有沒有人知道更好的方法來做到這一點?謝謝 !Python IO:使用格式說明符讀取文件
f=open('f.out','r')
lines = f.readlines()
nLines = len(lines)
data = {}
keys = {'SPE':[0, 2, np.int], #I2
'SPEISO':[2, 3, np.int], #I1
'wnum':[3,15, np.float64], #F12.6
'S':[15, 25, np.float64], #E10.3
'Ecoeff':[25, 35, np.float64], #E10.3
'AGA':[35, 40, np.float64], #F5.5
'SGA':[40, 45, np.float64], #F5.4
'ELO':[45, 55, np.float64], #F10.4
'N' :[55, 59, np.float64], #F4.2
'FSH':[59, 67, np.float64], #F8.6
'TRS':[67, 127, np.str],
'IERR': [127, 133, np.int],
'IEFF': [133, 145, np.str],
'other': [145,160, np.str] }
for k in keys:
data[k] = np.zeros(nLines)
for i, l in enumerate(lines):
print i
for k in keys:
print k
data[[k][i]] = l.format(keys[k])
太好了!它看起來像它的工作。現在我只需要弄清楚這個DataFrame對象是如何工作的,這樣我就可以將我的值轉換爲常規數組。 – user2036115
您可以將DataFrame視爲多個列,其中每列表示一個numpy數組。你也可以將它轉換爲一個numpy記錄數組('dataframe.to_records()'),但是你可能想要使用dataframe對象本身的很好的特性。 – SiggyF