Python“没有这样的文件或目录”使用模式“w+”打开路径“~/filename”

发布于 2024-12-09 01:44:33 字数 269 浏览 2 评论 0原文

我正在尝试使用此行打开一个不存在的文件:

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

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

事实并非如此。我收到这个错误。

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

有想法吗?

I'm trying to open a file that doesn't exist with this line:

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

That should open it if it exists, and then wipe content to begin to write.
If it doesn't exist, it should create it...right?

It doesn't. I get this error.

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

Ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

韬韬不绝 2024-12-16 01:44:33

主目录的 ~ 别名是 shell 主义(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>

>>> _

The ~ alias for the home directory is a shell-ism (something the shell does for you), not something you can use with the Python open command:

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>

>>> _
有木有妳兜一样 2024-12-16 01:44:33

虽然 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>

While it's true that Python's open does not support ~ expansion directly, you can use it in conjunction with the Python standard library function 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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文