从Python中获取.dat文件中的数据

时间:2018-06-11 13:27:31

标签: python

我试图从.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文件中的数据?

0 个答案:

没有答案