मैं विंडोज 7 पर पायथन 3.2 का उपयोग कर रहा हूं। जब मैं पायथन शेल खोलता हूं, तो मुझे कैसे पता चलेगा कि वर्तमान निर्देशिका क्या है और मैं इसे दूसरी निर्देशिका में कैसे बदल सकता हूं जहां मेरे मॉड्यूल हैं?
मैं विंडोज 7 पर पायथन 3.2 का उपयोग कर रहा हूं। जब मैं पायथन शेल खोलता हूं, तो मुझे कैसे पता चलेगा कि वर्तमान निर्देशिका क्या है और मैं इसे दूसरी निर्देशिका में कैसे बदल सकता हूं जहां मेरे मॉड्यूल हैं?
जवाबों:
आप 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
, लेकिन ध्यान दें कि ओपी विंडोज निर्दिष्ट करता है ...
sys.path
अपनी स्क्रिप्ट के अंदर संलग्न करने का विकल्प है ।
PYTHONPATH
विश्व स्तर पर सेट न करें यदि आपके पास एक से अधिक पायथन स्थापित हैं (या उनके साथ बंडल पायथन स्थापित करने वाले कार्यक्रम हैं - दूसरे शब्दों में जिन्हें आप कभी नहीं जान पाएंगे): यह रहस्यमय तरीके से आपकी स्थापना को तोड़ सकता है
तुम्हें चाहिए
import os
os.getcwd()
os.chdir('..')
os.chdir('C:/Users/Ajeya/Documents')
, या os.chdir('C:\\Users\\Ajeya\\Documents')
, या os.chdir(r'C:\Users\Ajeya\Documents')
।
os.getcwd()
केवल डिबगिंग उद्देश्यों के लिए कॉल करते हैं ताकि हम यह देख सकें कि कार्यशील निर्देशिका को बदलने से पहले हम क्या कर रहे हैं। कोड को वास्तव में बदलने के cwd
लिए बस हैos.chdir('..')
>>> import os
>>> os.system('cd c:\mydir')
वास्तव में, os.system()
किसी भी कमांड को निष्पादित कर सकता है जो विंडोज़ कमांड प्रॉम्प्ट निष्पादित कर सकता है, न कि केवल डायर को बदल सकता है।
वर्तमान निर्देशिका को बदलना पायथन में मॉड्यूल खोजने से निपटने का तरीका नहीं है।
बल्कि, पायथन के लिए कौन सा मॉड्यूल आयात करना है , इसके लिए मॉड्यूल खोज पथ के लिए डॉक्स देखें ।
यहाँ मानक मॉड्यूल अनुभाग से एक प्रासंगिक सा है :
चर 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/')
अजगर में वर्तमान कामकाजी निर्देशिका को बदलने का सबसे आसान तरीका 'ओएस' पैकेज का उपयोग करना है। नीचे विंडोज कंप्यूटर के लिए एक उदाहरण है:
# Import the os package
import os
# Confirm the current working directory
os.getcwd()
# Use '\\' while changing the directory
os.chdir("C:\\user\\foldername")
यदि आप वर्तमान कार्यशील निर्देशिका प्राप्त करने के लिए import os
उपयोग कर सकते हैं os.getcwd
, और आप os.chdir
अपनी निर्देशिका को बदलने के लिए उपयोग कर सकते हैं
आप यह कोशिश कर सकते हैं:
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"