2014-09-19 35 views
2

簡介: 如何在Python中讀取文件? 爲什麼必須這樣做?FileNotFoundError:[Errno 2]

我的問題是,我得到以下錯誤:

Traceback (most recent call last): 
    File "C:\Users\Terminal\Desktop\wkspc\filetesting.py", line 1, in <module> 
    testFile=open("test.txt") 
FileNotFoundError: [Errno 2] No such file or directory: 'test.txt' 

從下面的代碼來源於:(即整個 '的.py' 文件)

testFile=open("test.txt") 
print(testFile.read()) 

「的test.txt 「與我的程序位於同一個文件夾中。我是Python新手,不明白爲什麼我會收到文件位置錯誤。我想知道修補程序以及爲什麼修復必須以這種方式完成。

我一直在使用的文件的絕對路徑嘗試, 「C:\用戶\終端\桌面\ wkspc \ test.txt的」

其他詳情:

"Python 3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 10:38:22) [MSC v.1600 32 bit (Intel)] on win32" 
Windows 7, 32 Bit 
+3

似乎是由不同原因造成的。 1.爲了使用''test.txt'',你如何調用你的python腳本? 2.爲了使用完整路徑,你是否避免轉義字符(例如,通過使用'r「C:\ Users \ Terminal \ Desktop \ wkspc \ test.txt''注意'r') – starrify 2014-09-19 01:00:05

+0

你能告訴我們命令你用你的腳本啓動python? – 2014-09-19 01:09:21

+1

如果您想使用Python從python腳本所在的目錄加載'test.txt',那麼當您啓動python時,您需要在該目錄中。我唯一的猜測是,你從其他地方啓動python腳本 – 2014-09-19 01:15:55

回答

11

由於您使用IDLE (GUI)腳本可能不會從腳本所在的目錄啓動。我認爲最好的辦法是去的東西,如:當前運行的腳本所在之處

import os.path 

scriptpath = os.path.dirname(__file__) 
filename = os.path.join(scriptpath, 'test.txt') 
testFile=open(filename) 
print(testFile.read()) 

os.path.dirname(__file__)將找到的目錄。然後它使用os.path.join以此路徑爲前綴test.txt

如果這不起作用,那麼我只能猜測test.txt實際上與您正在運行的腳本不在同一個目錄中。

+1

這工作,謝謝!希望,一旦我受到更多教育,我可以擺脫這種修復。 – ThisGuy 2014-09-19 01:48:51

+0

通常情況下,您需要指定文件名的完整路徑,因爲它提到了starrify(他們的建議可能也會起作用),並且可以解決問題。無論腳本如何啓動以及來自何處(不同路徑),此代碼都可以工作。 – 2014-09-19 01:52:59