Bagaimana untuk menyelesaikan masalah os.path.exits() dalam python

WBOY
Lepaskan: 2023-05-16 17:58:27
ke hadapan
1080 orang telah melayarinya

Masalah

Kadangkala kita sering melihat kod yang serupa:

assert os.path.isdir(path_model_dir)
assert os.path.exits(path_model_dir)
Salin selepas log masuk

Jika anda mengisi laluan relatif sebagai path_model_dir, ia akan mendatangkan akibat yang buruk. Kita perlu memberi perhatian kepada elemen berikut:

  • Kaedah os.path.exists() tidak secara langsung menggunakan laluan dalam sys.path untuk mencari fail, ia memanggil sistem pengendalian Antara muka untuk menyemak sama ada laluan yang diberikan wujud.

  • Apabila menggunakan laluan relatif, Python akan terlebih dahulu mentafsirkannya sebagai relatif kepada direktori kerja semasa. Biasanya, direktori kerja semasa jurubahasa interaktif ialah direktori dari mana jurubahasa itu dimulakan.

Dua perenggan di atas menerangkan bahawa jika anda mengisi laluan relatif, laluan relatif yang dinyatakan di sini ialah laluan relatif berbanding fail semasa atau laluan relatif berbanding penterjemah ia relatif kepada menjalankan penterjemah, menyahpepijat penterjemah, atau adakah ia relatif kepada laluan relatif dalam baris arahan? Saya pernah menyunting kod dalam editor yang sama, dan ia boleh dijalankan secara langsung semasa berjalan, tetapi ia terus melaporkan ralat semasa menyahpepijat Kemudian saya mendapati bahawa laluan relatif penterjemah penyahpepijatan dan jurubahasa berjalan dalam editor yang sama adalah berbeza (mengejutkan). !

Dan kaedah os.path.exists() tidak secara langsung menggunakan laluan dalam sys.path untuk mencari fail, dan ia juga tidak menggunakan pembolehubah persekitaran dalam ~/.bashrc untuk mencari fail, ia hanya menggunakan relatif laluan. dan laluan mutlak untuk mencari fail.

Cadangan

Terdapat dua cadangan Perkara utama ialah menggunakan laluan mutlak.

  • Laluan mutlak terus ke rentetan berkod keras

  • (disyorkan) gunakan __file__ untuk menyambung laluan mutlak berbanding fail skrip

Sesetengah orang bertanya untuk tujuan apa laluan yang ditambahkan dalam sys.path.append(path) sebenarnya, laluan yang ditambahkan di sini digunakan terutamanya untuk mengimport pakej import. Iaitu, jika anda ingin menambah direktori tambahan pada laluan carian modul Python, anda boleh menambah direktori tersebut pada senarai sys.path. Ini akan menyebabkan Python menyertakan direktori ini secara automatik semasa mencari modul. Walau bagaimanapun, ambil perhatian bahawa kaedah ini digunakan apabila Python mengimport modul, bukan semasa memanggil kaedah os.path.exists().

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah os.path.exits() dalam python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!