首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python‘没有这样的文件或目录’打开路径`~/filename`,模式为`w+`

问Python‘没有这样的文件或目录’打开路径`~/filename`,模式为`w+`
EN

Stack Overflow用户
提问于 2011-10-11 12:21:49
回答 2查看 1.7K关注 0票数 1

我正在尝试打开一个不存在以下代码行的文件:

代码语言:javascript
复制
x = open("~/tweetly/auth", 'w+')

这应该会打开它,如果它存在,然后擦除内容开始写入。如果它不存在,它应该创建it...right?

不是的,我得到了这个错误。

代码语言:javascript
复制
IOError: [Errno 2] No such file or directory: '~/tweetly/auth'

想法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-11 12:24:47

主目录的外壳别名是~ -ism(外壳为您执行的操作),而不是您可以与Python open命令一起使用的东西:

代码语言:javascript
复制
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>

>>> _
票数 4
EN

Stack Overflow用户

发布于 2011-10-11 12:42:52

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

代码语言:javascript
复制
>>> 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>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7721345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档