2017-09-26 200 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'导入的。 –

相关问题