ฉันใช้ Python 3.2 บน Windows 7 เมื่อฉันเปิด Python shell ฉันจะรู้ได้อย่างไรว่าไดเรกทอรีปัจจุบันคืออะไรและฉันจะเปลี่ยนเป็นไดเรกทอรีอื่นที่โมดูลของฉันอยู่ได้อย่างไร
ฉันใช้ Python 3.2 บน Windows 7 เมื่อฉันเปิด Python shell ฉันจะรู้ได้อย่างไรว่าไดเรกทอรีปัจจุบันคืออะไรและฉันจะเปลี่ยนเป็นไดเรกทอรีอื่นที่โมดูลของฉันอยู่ได้อย่างไร
คำตอบ:
คุณสามารถใช้os
โมดูล
>>> import os
>>> os.getcwd()
'/home/user'
>>> os.chdir("/tmp/")
>>> os.getcwd()
'/tmp'
แต่ถ้ามันเกี่ยวกับการหาโมดูลอื่น ๆ : คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อมที่เรียกว่าPYTHONPATH
ภายใต้ Linux จะเป็นเช่นนั้น
export PYTHONPATH=/path/to/my/library:$PYTHONPATH
จากนั้นล่ามก็จะค้นหาimport
โมดูล ed ที่นี่ด้วย ฉันเดาว่าชื่อจะเหมือนกันใน Windows แต่ไม่รู้ว่าจะเปลี่ยนอย่างไร
แก้ไข
ภายใต้ Windows:
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
PYTHONPATH
แต่ทราบว่า OP ระบุ Windows ...
sys.path
สคริปต์ของคุณ
PYTHONPATH
ทั่วโลกหากคุณติดตั้ง Python มากกว่าหนึ่งตัว (หรือมีโปรแกรมที่ติดตั้งที่รวม Python ไว้ด้วยกัน - หรืออาจกล่าวได้ว่าคุณไม่เคยรู้): มันอาจทำให้การติดตั้งของคุณแตกต่างไปอย่างลึกลับ
คุณต้องการ
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()
สามารถดำเนินการคำสั่งใด ๆ ที่ windows command prompt สามารถดำเนินการไม่เพียง แต่เปลี่ยน dir
การเปลี่ยนไดเรกทอรีปัจจุบันไม่ใช่วิธีจัดการกับการค้นหาโมดูลใน Python
ให้ดูเอกสารสำหรับThe Module Search Pathสำหรับวิธีที่ 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/')
วิธีที่ง่ายที่สุดในการเปลี่ยนไดเรกทอรีการทำงานปัจจุบันในไพ ธ อนนั้นใช้แพ็คเกจ '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")
หากคุณ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"