Saya punya sedikit masalah dengan ~ di jalur saya.
Contoh kode ini membuat beberapa direktori yang disebut "~ / some_dir" dan tidak mengerti bahwa saya ingin membuat some_dir di direktori home saya.
my_dir = "~/some_dir"
if not os.path.exists(my_dir):
os.makedirs(my_dir)
Perhatikan ini pada sistem berbasis Linux.
./
referensi direktori Anda saat ini, dan dengan demikian./~
untuk menghapus folder~
di direktori saat ini. Untuk lebih aman, itu termudah untuk hanya memberikan path lengkap:rm -rf path/to/bad/dir/~
.rm \~
Konversi
~/some_dir
ke$HOME/some_dir
disebut ekspansi tilde dan merupakan fitur antarmuka pengguna yang umum. Sistem file tidak tahu apa-apa tentang itu.Dalam Python, fitur ini diterapkan oleh os.path.expanduser :
sumber
~
. Jadi pintasan shell home adalah ambigu dan sebaiknya dihindari jika Anda bisa.The file system does not know anything about it.
+1Itu mungkin karena Python bukan Bash dan tidak mengikuti konvensi yang sama. Anda dapat menggunakan ini:
sumber
Ini akan membuat folder jika tidak ada di sana itu tidak akan membuat folder.
CATATAN : itu juga akan membuat folder di jalur (jika diperlukan)
Fungsi ini berfungsi seperti
mkdir -p path/to/folder
sumber
Anda sekarang dapat melakukannya seperti
Silakan merujuk ke https://stackoverflow.com/a/54190233/6799074 untuk penggunaan
srblib.abs_path
sumber