2017-09-26 198 views
1

錯誤消息指出從taskhandler.py: with open('./tasks.csv','r') as task_data: FileNotFoundError: [Errno 2] No such file or directory: './tasks.csv' FileNotFoundError:[錯誤2]沒有這樣的文件或目錄,但該文件是有

但它其實有:

. 
 
├── feature 
 
│   ├── __init__.py 
 
│   ├── styles 
 
│   │   ├── __init__.py 
 
│   │   ├── termcolor.pyc 
 
│   │   ├── text_style.py 
 
│   ├── taskhandler.py 
 
│   └── tasks.csv 
 
├── __init__.py 
 
├── start.py 
 

 
1 directories, 8 files

下面是taskhandler.py

... 

def update_program(taskobj): 
    with open('./tasks.csv','r') as task_data: 
     csv_reader = csv.reader(task_data) 

     next(csv_reader) 

     for line in csv_reader: 

      if line in taskobj: 
       pass 
      else: 
       taskobj.append(line) 

    task_data.close() 

... 
代碼

那麼如何解決這個問題呢?我打開文件的方式有錯誤嗎?我在我的另一臺電腦上試過了,它正常工作。

UPDATE

注: 如果你想看到整個源代碼,繼續前進,我github account或者如果你想嘗試的節目,看看實際的錯誤,pip3 install pydotask並輸入您的終端pydo。上面的一些代碼和目錄在github和pip安裝中稍作編輯和重新配置。但問題依然如故。

這是一個CLI程序,所以我建議用Linux來嘗試它。

+7

可能有一個名爲「tasks.csv」的文件,但該程序可能在另一個地方查找。 「./」不涉及腳本的位置,它指的是當前的工作目錄。那些可以是兩個完全不同的位置。可以肯定的是,如果python說「文件未找到」,它不在那裏。 –

+4

您是否已經嘗試過打開(「tasks.csv」)'(省略「./」)? –

+1

在您的with-statement之前執行'import os;打印(os.getcwd())'。您將看到當前目錄不是包含'tasks.csv'的目錄。你需要提供正確的絕對或相對路徑('os.path.join(parent_path,'tasks.csv')')。 (你可以用'os.chdir()'改變工作目錄,但是不要這樣做。) –

回答

-2

csv文件位於相同的文件夾中,因此您可以直接嘗試with open('tasks.csv','r') as task_data。 我希望這對你有所幫助。

+2

不。如果'with task('tasks.csv','r')as task_data' works,那麼'with open('./ tasks.csv','r')as task_data'也適用。僅僅因爲'taskhandler.py'和'tasks.csv'在同一個目錄中並不意味着腳本是從同一個目錄啓動的,或者工作目錄沒有被改變。我們知道'taskhandler.py'是由'start.py'導入的。 –

相關問題