Python'没有这样的文件或目录'打开路径`〜/ filename`,模式为`w +`

时间:2011-10-11 04:21:49

标签: python error-handling ioerror

我正在尝试打开此行不存在的文件:

x = open("~/tweetly/auth", 'w+')

如果存在则应该打开它,然后擦除内容以开始写入。 如果它不存在,它应该创建它......对吗?

没有。我收到了这个错误。

IOError: [Errno 2] No such file or directory: '~/tweetly/auth'

想法?

2 个答案:

答案 0 :(得分:4)

主目录的~别名是shell-ism(shell为你做的事情),而不是你可以使用Python open命令的东西:

pax:~$ cd ~

pax:~$ ls qq.s
qq.s

pax:~$ python
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24) 
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.

>>> open("~/qq.s")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IOError: [Errno 2] No such file or directory: '~/qq.s'

>>> open("./qq.s")
<open file './qq.s', mode 'r' at 0xb7359e38>

>>> _

答案 1 :(得分:4)

虽然Python open不直接支持~扩展,但您可以将它与Python标准库函数os.path.expanduser结合使用:

>>> import os
>>> os.path.expanduser("~/qq.s")
'/Users/nad/qq.s'
>>> open(os.path.expanduser("~/qq.s"), 'w+')
<open file '/Users/nad/qq.s', mode 'w+' at 0x1049ef810>