Những gì nên được thực hiện
Bạn nên thực hiện home=os.path.expanduser("~")
đầu tiên và sau đó os.path.join(home,"something")
. Nó ~
được coi là văn bản trong python và không mở rộng như nó trong bash
hoặc các shell khác.
$ python -c 'import os;home=os.path.expanduser("~"); os.mkdir(os.path.join(home,"something"))'
$ ls -ld ~/something
drwxrwxr-x 2 xieerqi xieerqi 4096 7月 12 21:00 /home/xieerqi/something/
làm thế nào để thoát khỏi nó
Ngoài các phương thức đã được đề cập, chúng ta có thể sử dụng giá trị hex cho ~
từ bảng ký tự ascii, không giống như thực tế ~
không mở rộng sang thư mục chính của người dùng trên dòng lệnh (Trong trường hợp bạn đang tự hỏi, khi dấu ngã xuất hiện ở đầu một từ, nó mở rộng đến thư mục nhà của người dùng. So sánh ls ~
và ls $'\x7e'
).
Đây là cách nó sẽ hoạt động:
# Make the directory
$ mkdir ./~
$ stat ./$'\x7e'
File: './~'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 801h/2049d Inode: 5768019 Links: 2
Access: (0775/drwxrwxr-x) Uid: ( 1000/ xieerqi) Gid: ( 1000/ xieerqi)
Access: 2017-07-12 21:05:31.382828424 -0600
Modify: 2017-07-12 21:05:31.382828424 -0600
Change: 2017-07-12 21:05:31.382828424 -0600
Birth: -
# and remove it
$ rmdir ./$'\x7e'
$ ls $'\x7e'
ls: cannot access '~': No such file or directory