:私は、これは現存するファイルの名前で呼び出すとPythonのosモジュールのパス機能のドキュメントから
os.path.realpath(path)
Return the canonical path of the specified filename, eliminating any
symbolic links encountered in the path (if they are supported by the
operating system).
、私はそれへのパスを取得する:/home/myhome/myproject
。
私はこれを 'nonsense.xxx'文字列引数で呼び出すと、まだパスが/home/myhome/myproject/nonsense.xxx
になります。 nonsense.xxx
はファイルではなくディレクトリであると見なされるため、これは少し矛盾しています(どちらも存在しませんが、存在しません)。
これをヌル文字列ファイル名で呼び出すと、まだパスは/home/myhome/myproject
になります。
ドキュメントでrealpath()について少ししか言及していない場合のこの動作についてはどうすれば説明できますか? (私はPython 2.5を使用しています)
編集:誰かがファイルが存在するかどうかをテストする方法を提案しました。私の懸念は、ファイルが存在するかどうかをテストすることではない。私の懸念は行動を説明することです。
os.path docには、「このモジュールはパス名にいくつかの便利な機能を実装しています。 os.path.realpath()は、あなたが送信するガベージに関係なく、パスを返すとは言いません。しかし、それはそうであるようです。 – H2ONaCl
@broiyan:もしあなたが無言の人物であると仮定すれば、あなたの期待はもっと心苦しくなるでしょう。 –
pathnamesは、それが存在するファイルへのパスであることを意味しません。ちょうどそれは有効なパスです。 – richo