पायथन शेल में वर्तमान निर्देशिका को कैसे जानें / बदलें?


219

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


यह पहले से ही [यहाँ] [1]: stackoverflow.com/questions/431684/how-do-i-cd-in-python
मुद्रा

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

जवाबों:


299

आप 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/use/windows.html से लिया गया )

संपादित करें २

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

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


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

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

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

2
@ astray13: आपके पास पर्यावरण चर को अनदेखा करने और इसके बजाय sys.pathअपनी स्क्रिप्ट के अंदर संलग्न करने का विकल्प है ।
स्टीवन रूम्बल्स्की

3
@ astay13: PYTHONPATHविश्व स्तर पर सेट न करें यदि आपके पास एक से अधिक पायथन स्थापित हैं (या उनके साथ बंडल पायथन स्थापित करने वाले कार्यक्रम हैं - दूसरे शब्दों में जिन्हें आप कभी नहीं जान पाएंगे): यह रहस्यमय तरीके से आपकी स्थापना को तोड़ सकता है
jfs

18

तुम्हें चाहिए

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

1
os.chdir ('C: \ Users \ Ajeya \ Documents \') ^ SyntaxError: स्ट्रिंग को शाब्दिक रूप से स्कैन करते समय EOL
AAI

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

यह नोट करना अच्छा होगा कि आप os.getcwd()केवल डिबगिंग उद्देश्यों के लिए कॉल करते हैं ताकि हम यह देख सकें कि कार्यशील निर्देशिका को बदलने से पहले हम क्या कर रहे हैं। कोड को वास्तव में बदलने के cwdलिए बस हैos.chdir('..')
टूथपिक एनीमोन

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

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


फ़ाइल "<stdin>", पंक्ति 1 os.system ('cd c: \ Users \ Ajeya \ Documents \') ^ SyntaxError: EOL स्ट्रिंग स्ट्रिंग शाब्दिक स्कैन करते समय
AAI

6

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

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

यहाँ मानक मॉड्यूल अनुभाग से एक प्रासंगिक सा है :

चर 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

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

# Import the os package
import os

# Confirm the current working directory 
os.getcwd()

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

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

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"

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.