Pythonシェルで現在のディレクトリを知る/変更する方法は?


219

Windows 7でPython 3.2を使用しています。Pythonシェルを開いたときに、現在のディレクトリを確認するにはどうすればよいですか。また、モジュールがある別のディレクトリに変更するにはどうすればよいですか。


これはすでに議論されています[ここ] [1]:stackoverflow.com/questions/431684/how-do-i-cd-in-python
mudda

4
@ astay13-Ignacioは、ディレクトリをモジュールパスに変更するつもりがないことを意味すると思います。おそらく、PYTHONPATH環境変数をチェックアウトする必要があります。
サイモン、2011年

回答:


299

osモジュールを使用できます。

>>> import os
>>> os.getcwd()
'/home/user'
>>> os.chdir("/tmp/")
>>> os.getcwd()
'/tmp'

しかし、それが他のモジュールを見つけることに関するものである場合:PYTHONPATHLinux という環境変数は、

export PYTHONPATH=/path/to/my/library:$PYTHONPATH

次に、インタプリタはこの場所でもimportedモジュールを検索します。名前はWindowsでも同じだと思いますが、変更方法がわかりません。

編集する

Windowsの場合:

set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib

http://docs.python.org/using/windows.htmlから取得)

編集2

...さらに良い:virtualenvandを使用するとvirtualenv_wrapperadd2virtualenvインストール環境や「通常の」作業環境を汚染することなく、モジュールパスを好きなように追加できる()開発環境を作成できます。

http://virtualenvwrapper.readthedocs.org/en/latest/command_ref.html


質問を編集してに関する提案を追加するのは正しいですPYTHONPATHが、OPはWindowsを指定していることに注意してください
simon

そして、WindowsでのPYTHONPATHの何が問題になっていますか?しかし、私は私の答えを修正しました。
wal-o-mat

WindowsコマンドラインまたはPythonシェルでPYTHONPATHを設定する必要がありますか?
astay13 11/11/23 11:23

2
@ astray13:環境変数を無視して、代わりにsys.pathスクリプト内に追加するオプションもあります。
Steven Rumbalski、2011年

3
@ astay13:PYTHONPATH複数のPythonがインストールされている場合(またはPythonがバンドルされたプログラムがインストールされている場合、つまりわからない場合)はグローバルに設定しないでください。インストールが不可解な方法
jfs

18

あなたが欲しい

import os
os.getcwd()
os.chdir('..')

1
os.chdir( 'C:\ Users \ Ajeya \ Documents \')^ SyntaxError:文字列リテラルのスキャン中にEOL
AAI

1
@何であれ、バックスラッシュを通常の(ローでない)Python文字列で使用する場合は、バックスラッシュを2倍にする必要があります。Pythonでは、代わりにスラッシュを使用することもできます。したがって、、、、os.chdir('C:/Users/Ajeya/Documents')またはのいずれos.chdir('C:\\Users\\Ajeya\\Documents')os.chdir(r'C:\Users\Ajeya\Documents')です。
Charles Duffy

os.getcwd()変更する前に作業ディレクトリを確認できるように、デバッグ目的でのみ呼び出すことに注意してください。実際にこれを変更するコードcwdは次のos.chdir('..')
とおり

15
>>> import os
>>> os.system('cd c:\mydir')

実際、os.system()Windowsのコマンドプロンプトで実行できるすべてのコマンドを実行できます。dirを変更するだけではありません。


ファイル "<stdin>"、1行目os.system( 'cd c:\ Users \ Ajeya \ Documents \')^ SyntaxError:文字列リテラルのスキャン中にEOL
AAI

6

現在のディレクトリの変更は、Pythonでのモジュールの検索に対処する方法ではありません。

むしろ、Pythonがインポートするモジュールを見つける方法については、モジュール検索パスのドキュメントを参照してください。

標準モジュールセクションからの関連ビットは次のとおりです。

変数sys.pathは、インタープリターのモジュールの検索パスを決定するストリングのリストです。これは、環境変数PYTHONPATH、またはPYTHONPATHが設定されていない場合は組み込みのデフォルトから取得されたデフォルトパスに初期化されます。標準のリスト操作を使用して変更できます。

>>> import sys
>>> sys.path.append('/ufs/guido/lib/python')

現在のディレクトリの取得と設定に関する元の質問に答えてください。

>>> help(os.getcwd)

getcwd(...)
    getcwd() -> path

    Return a string representing the current working directory.

>>> help(os.chdir)

chdir(...)
    chdir(path)

    Change the current working directory to the specified path.

この答えは、金..ですちょうどこのようなあなたのプロジェクトディレクトリを追加しますimport sys sys.path.append('/home/g/PycharmProjects/your_project/')
gies0r

6

Pythonで現在の作業ディレクトリを変更する最も簡単な方法は、「os」パッケージを使用することです。以下は、Windowsコンピューターの例です。

# Import the os package
import os

# Confirm the current working directory 
os.getcwd()

# Use '\\' while changing the directory 
os.chdir("C:\\user\\foldername")

「\\」の使用とWindowsコンピュータに関する説明。しかし、私は受け入れられた答えがより説明的であることに同意します。
sambeet 2017年

4

あなたならばimport os、あなたは使用することができos.getcwd、現在の作業ディレクトリを取得するには、あなたが使用することができos.chdir、あなたのディレクトリを変更します


0

あなたはこれを試すことができます:

import os

current_dir = os.path.dirname(os.path.abspath(__file__))   # Can also use os.getcwd()
print(current_dir)                                         # prints(say)- D:\abc\def\ghi\jkl\mno"
new_dir = os.chdir('..\\..\\..\\')                         
print(new_dir)                                             # prints "D:\abc\def\ghi"

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.