Python 'Нет такого файла или каталога', путь открытия `~ / filename` с режимом` w + ` - PullRequest
1 голос
/ 11 октября 2011

Я пытаюсь открыть файл, который не существует с этой строкой:

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

Это должно открыть его, если он существует, а затем стереть содержимое, чтобы начать писать. Если он не существует, он должен создать его ... правильно?

Это не так. Я получаю эту ошибку.

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

Идеи

Ответы [ 2 ]

4 голосов
/ 11 октября 2011

Хотя 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>
4 голосов
/ 11 октября 2011

Псевдоним ~ для домашнего каталога - это оболочка (то, что оболочка делает для вас), а не то, что вы можете использовать с командой 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>

>>> _
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...