2011-11-23 11 views
132

मैं विंडोज 7 पर पायथन 3.2 का उपयोग कर रहा हूं। जब मैं पाइथन खोल खोलता हूं, तो मैं कैसे जान सकता हूं कि वर्तमान निर्देशिका क्या है और मैं इसे दूसरी निर्देशिका में कैसे बदल सकता हूं जहां मेरे मॉड्यूल हैं?पायथन शेल में वर्तमान निर्देशिका को कैसे जानें/बदलें?

+1

@Ignacio, आपका क्या मतलब है? – astay13

+0

इस पर पहले से ही चर्चा की गई है [यहां] [1]: http://stackoverflow.com/questions/431684/how-do-i-cd-in-python – mudda

+4

@ astay13 - मुझे लगता है कि इग्नासिओ का मतलब है कि आप निर्देशिका को आपके मॉड्यूल-पथ में बदलने का इरादा नहीं है। आपको शायद PythonPATH पर्यावरण परिवर्तक को देखना चाहिए। – simon

उत्तर

188

आप os मॉड्यूल का उपयोग कर सकते हैं बदलने के लिए है।

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

लेकिन यह अन्य मॉड्यूल खोजने के बारे में है, तो: आप एक वातावरण चर PYTHONPATH कहा जाता है सेट कर सकते हैं के तहत लिनक्स की तरह

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

तब होगा, दुभाषिया import एड मॉड्यूल के लिए इस जगह भी खोज करता है। मुझे लगता है कि नाम विंडोज के तहत समान होगा, लेकिन यह नहीं पता कि कैसे बदला जाए।

संपादित

विंडोज के अंतर्गत:

set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib 

(http://docs.python.org/using/windows.html से लिया)

संपादित 2

... और भी बेहतर: का उपयोग virtualenv और virtualenv_wrapper, यह सब होगा आप एक विकास वातावरण बनाने के लिए जहां आप अपनी स्थापना या "सामान्य" कामकाजी माहौल प्रदूषित किए बिना मॉड्यूल पथ जोड़ सकते हैं (add2virtualenv)।

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

+0

आप 'PythonPATH' के बारे में सुझाव जोड़ने के लिए अपना प्रश्न संपादित करने का अधिकार रखते हैं, लेकिन ध्यान दें कि ओपी विंडोज निर्दिष्ट करता है ... – simon

+0

और विंडोज के तहत पायथनपैथ के साथ क्या समस्या है? लेकिन मैंने अपना जवाब तय कर दिया। –

+0

क्या मुझे विंडोज कमांड लाइन में या पायथन शेल में PYTHONPATH सेट करना है? – astay13

4

आप import os आप os.getcwd उपयोग कर सकते हैं वर्तमान कार्यशील निर्देशिका को पाने के लिए, और आप os.chdir उपयोग कर सकते हैं अपने निर्देशिका

12

आप चाहते हैं

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

os.chdir ('सी: \ उपयोगकर्ता \ Ajeya \ दस्तावेज़ \') ^ सिंटेक्स त्रुटि: ईओएल स्ट्रिंग शाब्दिक स्कैनिंग करते समय – AAI

+1

@ जो कुछ भी आपको चाहिए यदि आप नियमित (गैर-कच्चे) पायथन स्ट्रिंग में उनका उपयोग करते हैं तो बैकस्लाश को दोगुना करने के लिए। पायथन आपको इसके बजाए आगे की स्लैश का उपयोग करने देता है। इस प्रकार, या तो 'os.chdir (' सी:/उपयोगकर्ता/अजय/दस्तावेज '), या 'os.chdir (' सी: \\ उपयोगकर्ता \\ अजय \\ दस्तावेज़ '), या' os.chdir (r 'C: \ Users \ अजेय \ दस्तावेज़') '। –

4

बदलने वर्तमान निर्देशिका पायथन में मॉड्यूल खोजने से निपटने के लिए तरीका नहीं है।

इसके बजाय, पाइथन को कौन सा मॉड्यूल आयात करने के लिए पाता है, इसके लिए The Module Search Path के लिए दस्तावेज़ देखें।

यहाँ है Standard Modules अनुभाग से एक प्रासंगिक बिट:

The variable sys.path is a list of strings that determines the interpreter’s search path for modules. It is initialized to a default path taken from the environment variable PYTHONPATH, or from a built-in default if PYTHONPATH is not set. You can modify it using standard list operations:

>>> 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. 
7
>>> import os 
>>> os.system('cd c:\mydir') 

वास्तव में, os.system() किसी भी निष्पादित कर सकते हैं कमांड कि विंडोज कमांड प्रॉम्प्ट निष्पादित कर सकता है, न कि सिर्फ डीआईआर बदलें।

+0

फ़ाइल "", लाइन 1 os.system ('cd c: \ Users \ अजेय \ दस्तावेज़ \') ^ सिंटैक्स त्रुटि: EOL जबकि स्ट्रिंग स्कैनिंग शाब्दिक – AAI

0

पायथन में वर्तमान कार्यशील निर्देशिका को बदलने का सबसे आसान तरीका 'ओएस' पैकेज का उपयोग कर रहा है। नीचे विंडोज कंप्यूटर के लिए एक उदाहरण है:

#import the os package 
import os 
# Confirm the current working directory 
os.getcwd() 
# use '\\' while chaning the directory 
os.chdir("C:\\user\\foldername") 
+0

यह कैसे स्वीकार कर लिया जवाब से भिन्न होता है? – Iceman

+0

विंडोज कंप्यूटर के बारे में "\\" और स्पष्टीकरण का उपयोग। लेकिन मैं सहमत हूं कि स्वीकृत उत्तर अधिक वर्णनात्मक है। – sambeet

संबंधित मुद्दे