Python kabuğundaki geçerli dizini nasıl bilebilirim / değiştirebilirim?


219

Windows 7'de Python 3.2 kullanıyorum. Python kabuğunu açtığımda, geçerli dizinin ne olduğunu nasıl öğrenebilirim ve modüllerimin bulunduğu başka bir dizine nasıl değiştirebilirim?



4
@ astay13 - Sanırım Ignacio, dizini modül yolunuza değiştirmek istemediğiniz anlamına geliyor. Muhtemelen PYTHONPATH ortam değişkenini kontrol etmelisiniz.
simon

Yanıtlar:


299

osModülü kullanabilirsiniz .

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

Ancak başka modüller bulmakla ilgili ise: PYTHONPATHLinux altında şöyle bir ortam değişkeni ayarlayabilirsiniz

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

Ardından, tercüman bu yerde imported modüllerini de arar . Sanırım adı Windows altında aynı olurdu, ancak nasıl değiştirileceğini bilmiyorum.

Düzenle

Windows altında:

set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib

( http://docs.python.org/using/windows.html adresinden alınmıştır )

düzenleme 2

... ve daha da iyisi: kullanın virtualenvve virtualenv_wrapperbu, add2virtualenvkurulumunuzu veya "normal" çalışma ortamınızı kirletmeden istediğiniz gibi ( ) modül yolları ekleyebileceğiniz bir geliştirme ortamı oluşturmanıza olanak tanır .

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


hakkında öneri eklemek için sorunuzu düzenleme hakkınız var PYTHONPATH, ancak OP'nin Windows'u belirttiğini unutmayın ...
simon

Peki Windows altındaki PYTHONPATH ile ilgili sorun nedir? Ama cevabımı düzelttim.
wal-o-mat

Windows komut satırında veya Python kabuğunda PYTHONPATH ayarlamam gerekir mi?
astay13

2
@ astray13: Ayrıca ortam değişkenini göz ardı etme ve sys.pathbetiğinizin içine ekleme seçeneğiniz de vardır .
Steven Rumbalski

3
@ astay13: PYTHONPATHbirden fazla Python yüklüyse (veya Python'u onlarla paketleyen programlar yüklediyseniz - başka bir deyişle asla bilemeyeceğinizi) global olarak ayarlamayın : kurulumunuzu gizemli şekillerde
jfs

18

İstediğiniz

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

1
os.chdir ('C: \ Kullanıcılar \ Ajeya \ Belgeler \') ^ Sözdizimi Hatası: Dize değişmezini tararken EOL
AAI

1
@Neyse, normal (ham olmayan) bir Python dizesinde kullanırsanız ters eğik çizgileri ikiye katlamanız gerekir. Python bunun yerine eğik çizgi kullanmanıza da izin verir. Böylece ya os.chdir('C:/Users/Ajeya/Documents'), ya da os.chdir('C:\\Users\\Ajeya\\Documents'), ya os.chdir(r'C:\Users\Ajeya\Documents').
Charles Duffy

os.getcwd()Çalışma dizini değiştirmeden önce ne olduğunu görebilmemiz için yalnızca hata ayıklama amacıyla aradığınızı belirtmek iyi olur. Aslında değiştirmek için kod cwdsadeceos.chdir('..')
Kürdan Anemone

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

Aslında, os.system()windows komut isteminin çalışabileceği herhangi bir komutu çalıştırabilir, sadece dir değiştiremezsiniz.


"<stdin>" dosyası, satır 1 os.system ('cd c: \ Users \ Ajeya \ Documents \') ^ Sözdizimi Hatası: Dize değişmezini tararken EOL
AAI

6

Geçerli dizini değiştirmek, Python'da modül bulma ile başa çıkmanın yolu değildir.

Bunun yerine, Python'un içe aktarılacak modülü nasıl bulduğunu öğrenmek için Modül Arama Yolu belgelerine bakın .

Standart Modüller bölümünden ilgili bir bit :

Sys.path değişkeni, yorumlayıcının modüller için arama yolunu belirleyen dizelerin listesidir. PYTHONPATH ortam değişkeninden veya PYTHONPATH ayarlanmamışsa yerleşik bir varsayılandan alınan varsayılan bir yola başlatılır. Standart liste işlemlerini kullanarak değiştirebilirsiniz:

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

Geçerli dizini alma ve ayarlama hakkındaki orijinal sorunuza yanıt olarak:

>>> 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.

Bu cevap altın .. Sadece proje dizininizi şöyle ekleyin:import sys sys.path.append('/home/g/PycharmProjects/your_project/')
gies0r

6

Python'da geçerli çalışma dizinini değiştirmenin en kolay yolu 'os' paketini kullanmaktır. Aşağıda Windows bilgisayarı için bir örnek var:

# Import the os package
import os

# Confirm the current working directory 
os.getcwd()

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

"\\" kullanımı ve Windows bilgisayar hakkında açıklama. Ancak kabul edilen cevabın daha açıklayıcı olduğunu kabul ediyorum.
sambeet

4

Eğer import oskullanabileceğiniz os.getcwdGeçerli çalışma dizini almak için, ve kullanabileceğiniz os.chdirDizininizin değiştirmek için


0

Bunu deneyebilirsiniz:

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"

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.