FileNotFoundError:[错误2]没有这样的文件或目录,但该文件是有
错误消息指出从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来尝试它。
csv文件位于相同的文件夹中,因此您可以直接尝试with open('tasks.csv','r') as task_data
。 我希望这对你有所帮助。
不。如果'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'导入的。 –
可能有一个名为“tasks.csv”的文件,但该程序可能在另一个地方查找。 “./”不涉及脚本的位置,它指的是当前的工作目录。那些可以是两个完全不同的位置。可以肯定的是,如果python说“文件未找到”,它不在那里。 –
您是否已经尝试过打开(“tasks.csv”)'(省略“./”)? –
在您的with-statement之前执行'import os;打印(os.getcwd())'。您将看到当前目录不是包含'tasks.csv'的目录。你需要提供正确的绝对或相对路径('os.path.join(parent_path,'tasks.csv')')。 (你可以用'os.chdir()'改变工作目录,但是不要这样做。) –