2017-09-26 2 views
1

Fehlermeldung sagt von der taskhandler.py: with open('./tasks.csv','r') as task_data: FileNotFoundError: [Errno 2] No such file or directory: './tasks.csv' FileNotFoundError: [Errno 2] Datei oder das Verzeichnis, aber die Datei ist es

Aber es ist tatsächlich da:

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

 
1 directories, 8 files
Hier

ist der Code für die 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() 

... 

Also, wie um dieses Problem zu umgehen? Gibt es einen Fehler bei der Art, wie ich die Datei öffne? Ich habe es auf meinem anderen Computer versucht und es funktioniert normal.

UPDATE

Hinweis: Wenn Sie den gesamten Quellcode zu sehen, gehen Sie vor, um meine github account oder wenn man wollte das Programm und sehen Sie den tatsächlichen Fehler, pip3 install pydotask und geben Sie versuchen Terminal pydo. Ein Teil des Codes und des Verzeichnisses oben wird in der Installation von github und pip leicht bearbeitet und neu konfiguriert. Aber das Problem bleibt das gleiche.

Dies ist ein CLI-Programm, also schlage ich vor, es mit Linux zu versuchen.

+7

Es kann eine Datei namens "tasks.csv" sein, aber das Programm sucht wahrscheinlich an einem anderen Ort. "./" bezieht sich nicht auf das Verzeichnis, in dem sich das Skript befindet, sondern auf das aktuelle Arbeitsverzeichnis. Das können zwei völlig verschiedene Orte sein. Man kann davon ausgehen, dass Python nicht da ist, wenn "Datei nicht gefunden" heißt. –

+4

hast du bereits versucht, "open (" tasks.csv ") zu öffnen (das" ./ "wegzulassen)? –

+1

Bevor Sie Ihre Aussage machen, importieren Sie os; print (os.getcwd()) '. Sie werden sehen, dass das aktuelle Verzeichnis nicht das Verzeichnis ist, das 'tasks.csv' enthält. Sie müssen den korrekten absoluten oder relativen Pfad angeben ('os.path.join (parent_path, 'tasks.csv')'). (Sie könnten stattdessen das Arbeitsverzeichnis mit 'os.chdir()' ändern, aber tun Sie das nicht.) –

Antwort

-2

Die CSV-Datei befindet sich im selben Ordner, so dass Sie with open('tasks.csv','r') as task_data direkt versuchen können. Ich hoffe das hilft dir.

+2

Nein. Wenn 'mit öffnen ('tasks.csv', 'r') als task_data' funktioniert dann' mit open ('./ tasks.csv', 'r') als task_data' auch funktioniert . Nur weil sich "taskhandler.py" im selben Verzeichnis wie "tasks.csv" befindet, heißt das nicht, dass das Skript aus demselben Verzeichnis gestartet wurde oder dass das Arbeitsverzeichnis nicht geändert wurde. Soweit wir wissen, wird 'taskhandler.py' von' start.py' importiert. –

Verwandte Themen