我的路径中有一点问题。
此代码示例创建了一些名为“〜/ some_dir”的目录,并且不明白我想在我的主目录中创建some_dir。
my_dir = "~/some_dir"
if not os.path.exists(my_dir):
os.makedirs(my_dir)
请注意,这是基于Linux的系统。
答案 0 :(得分:207)
您需要手动展开代字号:
my_dir = os.path.expanduser('~/some_dir')
答案 1 :(得分:62)
~/some_dir
到$HOME/some_dir
的转换称为tilde expansion,是一种常见的用户界面功能。文件系统对此一无所知。
在Python中,此功能由os.path.expanduser实现:
my_dir = os.path.expanduser("~/some_dir")
答案 2 :(得分:13)
这可能是因为Python不是Bash并且不遵循相同的约定。你可以用这个:
homedir = os.path.expanduser('~')
答案 3 :(得分:0)
from srblib import verify_folder
verify_folder('path/to/folder')
它将创建一个文件夹,否则将不会创建文件夹。
注意:它还将在路径中创建文件夹(如果需要)
srb@srb-pc:~/hello$ ls
srb@srb-pc:~/hello$ python3
>>> from srblib import verify_folder
>>> verify_folder('~/hello/A/B')
>>> exit()
srb@srb-pc:~/hello$ ls
A
srb@srb-pc:~/hello$ ls A
B
srb@srb-pc:~/hello$
此功能类似于mkdir -p path/to/folder
答案 4 :(得分:0)
您现在可以这样做
from srbib import abs_path
my_dir = abs_path('~/path/to/dir')
if not os.path.exists(my_dir):
os.makedirs(my_dir)
有关srblib.abs_path
的用法,请参考https://stackoverflow.com/a/54190233/6799074