在我的路上,我有一点问题.
这个代码示例创建了一些名为"〜/ some_dir"的目录,并且不明白我想在我的主目录中创建some_dir.
my_dir = "~/some_dir"
if not os.path.exists(my_dir):
os.makedirs(my_dir)
Run Code Online (Sandbox Code Playgroud)
请注意,这是基于Linux的系统.
我确定这是有意的,所以有人可以解释这种行为的基本原理:
Python 2.7.2 (default, Oct 13 2011, 15:27:47)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from os.path import isdir,expanduser
>>> isdir("~amosa/pdb")
False
>>> isdir(expanduser("~amosa/pdb"))
True
>>>
>>> from os import chdir
>>> chdir("~amosa/pdb")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 2] No such file or directory: '~amosa/pdb'
>>> chdir(expanduser("~amosa/pdb"))
>>>
Run Code Online (Sandbox Code Playgroud)
这真的很烦人,因为毕竟,用户名中的路径可以明确地解决...我想编写可以处理用户可能给我的任何输入的代码,但这种行为要求我调用expanduser on我的代码必须处理的每条路径.这也意味着无论我打印出哪条路径供用户查看,它都会比他们给我的信息略显清晰.
这似乎与"鸭子打字"的概念不一致,其中我概括为我希望python不要向我抱怨,除非实际上有问题......