Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menentukan Direktori Skrip Semasa dalam Python?

Bagaimanakah Saya Boleh Menentukan Direktori Skrip Semasa dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-12-13 17:19:10658semak imbas

How Can I Reliably Determine the Current Script Directory in Python?

Menentukan Direktori Skrip Semasa dengan Berkesan dalam Python

Dalam Python, mendapatkan direktori skrip semasa menimbulkan cabaran kerana pelbagai kaedah pelaksanaan skrip. Atribut fail dan modul, walaupun berguna, mempunyai had untuk senario tertentu.

Pertimbangkan kes berikut:

  • Pelaksanaan langsung: . /myfile.py
  • Pelaksanaan dengan penterjemah Python: python myfile.py
  • Pelaksanaan dari dalam skrip lain menggunakan exec()
  • Pelaksanaan dari dalam direktori lain

Untuk menangani pelbagai senario ini, pendekatan yang disyorkan ialah:

os.path.dirname(os.path.abspath(__file__))

Kaedah ini menggabungkan laluan fail mutlak dengan nama direktori, menyediakan direktori yang betul tanpa mengira kaedah pelaksanaan yang digunakan.

Awas:

Pergantungan pada direktori kerja semasa adalah tidak digalakkan, kerana ia boleh diubah semasa pelaksanaan skrip dan berbeza-beza bergantung pada seruan.

Untuk kes yang melibatkan pelaksanaan exec(), penyelesaian yang mungkin adalah untuk menetapkan fail global dalam skop yang diserahkan kepada skrip. Walau bagaimanapun, pendekatan ini mungkin tidak boleh dilaksanakan untuk semua kes penggunaan.

Ringkasnya, walaupun penyelesaian universal mungkin tidak wujud, pendekatan yang diterangkan di sini menawarkan kaedah yang teguh dan boleh dipercayai untuk menentukan direktori skrip semasa dalam Python.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan Direktori Skrip Semasa dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn