このページでは、open()、ファイルパス、CWD(’現在の作業ディレクトリ’)、r’生の文字列’プレフィックス、os。getcwd(),os.chディレクトリ()。
フルパスと名前を持つファイルの参照
チュートリアル#12と#13で見られるように、Pythonでファイルのフルパスとファイル名を使用してローカルファイルを参照することができます。, Below, you are opening up a file for reading:
|
|
In Windows, a full file directory path starts with a drive letter (C:, D:. etc.)., LinuxおよびOS-Xでは、rootと呼ばれる”/”で始まります。 ディレクトリはスラッシュ”/”で区切られます。 ファイルの完全なディレクトリパスとファイル名は、その”プロパティ”から検索できます。 それはどのようにこのページをご覧ください。
Windowsでファイルを参照する
Windowsでは、ファイルを参照するいくつかの追加の方法があります。 これは、ネイティブでは、Windowsファイルパスではスラッシュの代わりに円記号”\”が使用されるためです。 PythonはWindowsシステムで両方を使用することができますが、注意すべき落とし穴がいくつかあります。, それらを要約すると、
ファイル名のショートカットとCWD(Current Working Directory)
したがって、完全なディレクトリパスとファイル名を使用すると常に機能します。 ただし、名前だけで呼び出されるファイルを見たことがあるかもしれません。txt’Pythonで。 どのように行われますか?ここでは、現在の作業ディレクトリ(CWD)の概念が重要です。 現時点では、Pythonが内部で動作しているフォルダと考えることができます。 これまでのところ、一番上のディレクトリから始まる絶対パスを使用していました。 しかし、あなたのファイル参照が上から始まらない場合(例えば、’alice。,txt’,’ling1330/alice.txt’)、PythonはCWD(”相対パス”)で始まると想定しています。
これは、ファイルがPythonのCWDにある場合にのみ、名前のみの参照が成功することを意味します。 しかし、CWDが変わる可能性があることに注意してください。 また、Pythonの初期CWD設定は、Pythonスクリプトを使用しているのか、シェル環境で作業しているのかによって異なります。
- Pythonスクリプトでは:
スクリプトを実行すると、CWDはスクリプトがあるディレクトリに設定されます。, したがって、スクリプト内のファイルをその名前で参照できるのは、ファイルとスクリプトが同じディレクトリにある場合のみです。 例:myfile = open('alice.txt') # alice.txt is in the same dir as foo.pymytxt = myfile.read()myfile.close()foo.py
- Pythonシェルでは:
あなたのシェルでは、初期CWD設定はシステムによって異なります。 Windowsでは、デフォルトの場所はしばしば’C:/program ファイル(x86)/Python35-32’(これは不便です-この”基本構成”ページまたは変更方法についてはこのFAQを参照してください)。 OS-Xでは、通常’/Users/username/Documents’です。usernameはあなたのユーザーIDです。 (Macユーザーは設定を変更する方法については、このFAQを参照してください。,)ファイルがCWDにある場合を除き、- CWDをファイルのディレクトリに変更するか、
- ファイルをCWDにコピーまたは移動します。
- ファイルをCWDにコピーします。
(シェルのCWDが変更される可能性があるため、推奨されません。)
PythonシェルでCWD設定を操作する方法については、このスクリーンショットと次のセクションを参照してください。
CWDの検索と変更
Pythonモジュールosは、現在の作業ディレクトリを表示および変更するためのユーティリティを提供します。 以下はあなたのCWDを見つける方法を示しています(.getcwd())そして、それを別のディレクトリに変更します(.chdir())。, 以下はwindows OSの例です:Pythonインタプリタによって返されるCWDはWindowsのファイルパス形式であることに注意してください:ディレクトリ区切り文字にバックスラ PythonではWindowsユーザーはファイルパスでLinux/OS-Xスタイルの”/”を使用できますが、内部的にはOSネイティブのファイルパス形式を使用します。