2016-05-15 212 views
-2

我使用的Spyder的Python 2.7在Windows 8.我試圖打開和讀取一個CSV文件和查看存儲在它的所有數據,但是這是我得到什麼,而不是:如何在Python中讀取CSV文件?

runfile('C:/Users/John/Documents/Python Scripts/FLInsuraneFile.py', wdir='C:/Users/John/Documents/Python Scripts') 
<_io.TextIOWrapper name='FL_insurance_sample.csv' mode='r' encoding='cp1252'> 

如何我可以正確打開文件嗎?

+0

你想讀取或寫入文件嗎?你想使用[**'csv' **](https://docs.python.org/2/library/csv.html)模塊,還是隻打印整個內容? –

+0

@Dan發佈與您的問題相關的代碼? – aBiologist

回答

0

第一件事,你必須明白一個CSV文件的內部運作。 CSV文件是由行和列組成,例如:

| NAME | AGE | ROOM | 
| ---------------------| 
| Kaleb | 15 | 256 | 
| ---------------------| 
| John | 15 | 257 | 
| ---------------------| 
| Anna | 16 | 269 | 

當垂直元件列,且水平元件是行。行包含許多類型的數據,如名稱/年齡/房間。列僅包含一種類型的數據,如名稱。

繼續前進,這裏是讀取CSV的示例函數。 請仔細研究代碼。

def read_csv(csv_file): 
    data = [] 
    with open(csv_file, 'r') as f: 

     # create a list of rows in the CSV file 
     rows = f.readlines() 

     # strip white-space and newlines 
     rows = list(map(lambda x:x.strip(), rows)) 

     for row in rows: 

      # further split each row into columns assuming delimiter is comma 
      row = row.split(',') 

      # append to data-frame our new row-object with columns 
      data.append(row) 

    return data 

現在爲什麼要這樣做?那麼,這個功能允許你按行/列訪問你的CSV文件。這意味着索引更容易。使用上述功能請看下面的例子:

csvFile = 'test.csv' 

# invoke our function 
data = read_csv(csvFile) 

# get row 1, column 2 of file 
print(data[1][2]) 

# get entirety of row 2 
print(data[2]) 

# get row 0, columns 1 & 2 
print(data[0][1], data[0][2]) 

正如你所看到的,我們可以很容易地通過使用我們的read_csv()功能和創建嵌套列表對象訪問文件的不同部分。最後,如果要打印到整個文件,則只需在創建數據對象後使用for循環即可。

data = read_csv(csvFile) 

for row in data: 
    print(row) 

總之,大熊貓是非常適合大數據的科學,但如果你只是 想讀/訪問CSV,這個功能就好了。不需要爲小任務安裝大包,除非你想要:)。

祝你好運!