下面打開的數據數組是代碼我寫了試圖打開個人文件,它們是數據的長條並將其讀入的陣列。基本上我有15次運行(24小時到360小時)的文件,每個文件有50次迭代,因此是兩個循環。然後我嘗試打開文件到一個數組中。當我嘗試打印數組中的特定元素時,出現錯誤「文件」對象沒有屬性'getitem''。任何想法是什麼問題?謝謝。試圖填補與來自文件
#!/usr/bin/python
############################################
#
import csv
import sys
import numpy as np
import scipy as sp
#
#############################################
level = input("Enter a level: ");
LEVEL = str(level);
MODEL = raw_input("Enter a model: ");
NX = 360;
NY = 181;
date = 201409060000;
DATE = str(date);
#############################################
FileList = [];
data = [];
for j in range(1,51,1):
J = str(j);
for i in range(24,384,24):
I = str(i);
fileName = '/Users/alexg/ECMWF_DATA/DAT_FILES/'+MODEL+'_'+LEVEL+'_v_'+J+'_FT0'+I+'_'+DATE+'.dat';
FileList.append(fileName);
fo = open(fileName,"rb");
data.append(fo);
fo.close();
print data[1][1];
print FileList;
編輯補充: 下面,找到正確的數組的Python腳本應當以生產(抱歉,它不會讓我張貼這種內嵌還):
http://i.stack.imgur.com/ItSxd.png
我現在碰到的問題,的是,所述輸出矩陣的第一行中的前三個值是:
-7.090874
-7.004936
-6.920952
這些值實際上是第11行下面的陣列中,這是它應該如何看(在執行的前三個值MATLAB)。 python腳本輸出的下三個值(如它認爲是第二行)是:
-5.255577
-5.159874
-5.064171
這些值應該在第22行中找到。換句話說,python將第11行的值放在第一位,第22位放在第二位,依此類推。我不知道爲什麼,或者在我指定的代碼中執行此操作。
請閱讀此:http://legacy.python.org/dev/peps/pep-0008/ – jonrsharpe 2014-09-18 19:10:50
特別是:不要在每行的末尾放分號;不要隨意混合不同的變量命名風格,而是一致而不是隨意地縮進,並使用'with'語句而不是'close'。正如所寫的,對於任何使用Python的人來說,這看起來都不像Python,這會減慢任何試圖閱讀並幫助你的人。 – abarnert 2014-09-18 19:17:24
不知道你正在使用什麼代碼,我們不能調試代碼的錯誤。而且,由於它顯然不是原始問題中的代碼,因此您應該將此作爲新問題發佈,而不是編輯此問題。在你的新問題中,給我們一個完整的MCVE,帶有(精簡)可運行的源代碼和輸入(在文本中,不是截圖),所以如果有人想直接調試它,而不是試圖從第一原則推理他們可以(這通常是獲得答案的更快方式)。 – abarnert 2014-09-19 17:41:35