2013-08-05 31 views
1

當前我正在嘗試使用python中的csv模塊讀取一個csv文件。當我運行下面的代碼時,出現一個錯誤,指出文件不存在。我的第一個猜測是,也許,我把文件保存在錯誤的地方,或者我需要提供一個文件路徑的pyton。目前我已將該文件保存在C:\ Documents and Settings \ eag29278 \ My Documents \ python測試代碼\ test_satdata.csv中。錯誤「沒有這樣的文件或目錄」在python中讀取csv文件時

一邊注意im note注意確保將模式設置爲'rb'(讀二進制)是正確的舉措。

import csv 
with open('test_satdata.csv', 'rb') as csvfile: 
    satreader = csv.reader(csvfile, delimiter=' ', lineterminator=" ") 
    for row in satreader: 
     print ', '.join(row) 

這裏是錯誤代碼。

Traceback (most recent call last): 
File "C:/Python27/test code/test csv parse.py", line 2, in <module> 
    with open('test_satdata.csv', 'rb') as csvfile: 
IOError: [Errno 2] No such file or directory: 'test_satdata.csv' 

回答

2

您的代碼正在使用相對路徑; python正在查看當前目錄(無論可能)加載您的文件。當前目錄取決於您如何啓動Python腳本,以及是否執行了任何可能更改當前工作目錄的代碼。

使用完整的絕對路徑,而不是:

path = r'C:\Documents and Settings\eag29278\My Documents\python test code\test_satdata.csv' 
with open(path, 'rb') as csvfile: 

使用'rb'是完全正確的,csv module建議你這樣做:

如果csvfile是一個文件對象,則必須先斷開在平臺上用'b'標誌表示不同。

Windows 這樣一個平臺。

+0

謝謝,我確實推薦了你推薦的東西,並且我得到了python來輸出文件。 –

0

您當前的猜測是正確的:要麼把你的測試代碼目錄或點蟒蛇文件到正確的道路。

+0

不,「'rb''對於打開'csv'模塊的CSV文件是完全正確的。 –

+0

我剛剛在csv模塊的參考頁面上看到:「。如果csvfile是一個文件對象,它必須在平臺上用'b'標誌打開,這會產生變化」..我很抱歉沒有注意到導入csv行。編輯我的迴應。 – Amit

-1

重新命名您的文件夾。這對我有效。

相關問題