我试图从.dat文件中获取数据,以便运行某些计算并形成一个图。我已经看到类似的问题,但它们通常涉及二进制文件问题,剥离空格,路径错误等。但是,我的问题是我无法想出使用open
(或替代)将数据保存为正确的大小。
尽管.dat文件中的信息是一个2723x5矩阵,但我得到了大小错误,因为我的代码将文件保存为1x1大小,所以显然我没有像我想的那样打开数据。
这是我目前的代码:
1 import os
2 import numpy as np
3 import datetime
4
5 desktop = os.path.join(os.path.join(os.path.expanduser('~')), 'Desktop')
6 folder_dir = os.listdir(desktop)
7 timestampshort = datetime.datetime.today().strftime("%Y%m")
8 for i in folder_dir:
9 if i[0:5] == timestampshort[0:5]:
10 dat_dir = os.path.join(os.path.join(os.path.expanduser('~')), 'Desktop/'+i)
11 datfiles = os.listdir(dat_dir)
12 print datfiles
13 posErr = []
14 for j in datfiles: #Each j is a scan1000.dat file, etc.
15 name, ext = os.path.splitext(j)
16 if ext == '.dat':
17 #data = open(dat_dir+'/'+j,'r') #Now you can store data to take averages of position errors, etc.
18 #print np.shape(data)
19 with open(dat_dir+'/'+j) as f:
20 posErr.append([line.split()[3] for line in f])
21 print posErr
我得到的问题是:
File "Ed.py", line 20, in <module>
posErr.append([line.split()[3] for line in f])
IndexError: list index out of range
当打印f的大小时,它会给我()
,这意味着我没有像我想的那样打开数据文件。我该怎么做才能获取.dat文件中的数据?