2017-09-26 16 views
1

エラーメッセージがtaskhandler.pyから言う: with open('./tasks.csv','r') as task_data: FileNotFoundError: [Errno 2] No such file or directory: './tasks.csv' FileNotFoundError:[errnoを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"という名前のファイルが存在する可能性がありますが、プログラムは別の場所で探している可能性があります。 "./"は、スクリプトがどこにあるかを参照するものではなく、現在の作業ディレクトリを参照します。それらは全く異なる2つの場所にすることができます。 Pythonが「ファイルが見つかりません」と言っているのであれば、そこには存在しないと仮定するのは安全です。 –

+4

あなたは 'open(" tasks.csv ")'を試してみましたか?( "./")? –

+1

with-statementの前に 'import os;を実行してください。 print(os.getcwd()) '。現在のディレクトリが 'tasks.csv'を含むディレクトリではないことがわかります。正しい絶対パスまたは相対パス( 'os.path.join(parent_path、 'tasks.csv')')を指定する必要があります。 (あなたは代わりに 'os.chdir()'で作業ディレクトリを変更することができますが、それをしないでください) –

答えて

-2

csvファイルは同じフォルダにありますので、with open('tasks.csv','r') as task_dataを直接お試しください。 私はこれがあなたを助けてくれることを願っています。

+2

いいえ 'open( 'tasks.csv'、 'r')をtask_data'として実行すると、' open( './ tasks.csv'、 'r')as task_data'も動作します。 'taskhandler.py'が' tasks.csv'と同じディレクトリにあるからといって、スクリプトが同じディレクトリから起動されたことや、作業ディレクトリが変更されていないことを意味するものではありません。私たちが知っている限り、 'taskhandler.py'は' start.py'によってインポートされます。 –

関連する問題