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