__file__ bestaat niet in Jupyter Notebook

| | | | | | | | | | | | | | | | | | |

Ik ben op een Jupyter Notebook-server (v4.2.2) met Python 3.4 .2 en ik wil de algemene naam __file__ gebruiken, omdat de notebook wordt gekloond van andere gebruikers en in één sectie moet ik uitvoeren:

def __init__( self, trainingSamplesFolder="samples", maskFolder="masks"): self.trainingSamplesFolder = self.__getAbsPath(trainingSamplesFolder) self.maskFolder = self.__getAbsPath(maskFolder) def __getAbsPath(self, path): if os.path.isabs( path): return path else: return os.path.join(os.path.dirname(__file__), path) 

The __getAbsPath(self, path) controleert of een pad parameter een relatief of absoluut pad is en retourneert de absolute versie van pad zodat ik het geretourneerde pad later veilig kan gebruiken.

Maar ik krijg de foutmelding

NameError: name "__file__" is niet gedefinieerd

I gezocht naar deze fout online en vond de "oplossing" dat ik beter sys.argv[0] moet gebruiken, maar print(sys.argv[0]) geeft terug

/usr/local/lib/python3.4/dist-packages/ipykernel/__main__.py

Maar de juiste notebooklocatie moet be /home/ubuntu/notebooks/.

Bedankt voor de referentie Hoe krijg ik de huidige IPython Notebook-naam van Martijn Pieters (opmerkingen) het laatste antwoord (niet geaccepteerd) past perfect bij mijn behoeften:

print(os.getcwd())

/home/ubuntu/notebooks