1

この行で存在しないファイルを開こうとしています:

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

存在する場合はそれを開き、コンテンツをワイプして書き込みを開始する必要があります。存在しない場合は作成する必要があります...そうですか?

そうではありません。このエラーが発生します。

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

アイデア?

4

2 に答える 2

4

ホームディレクトリのエイリアスはシェルイズム(シェルが実行するもの)であり、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>

>>> _
于 2011-10-11T04:24:47.293 に答える
4

openPython が展開を直接サポートしていないことは事実ですが、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>
于 2011-10-11T04:42:51.940 に答える