Tôi đang sử dụng Python 3.2 trên Windows 7. Khi tôi mở trình bao Python, làm cách nào tôi có thể biết thư mục hiện tại là gì và làm cách nào để thay đổi nó thành thư mục khác có mô-đun của tôi?
Tôi đang sử dụng Python 3.2 trên Windows 7. Khi tôi mở trình bao Python, làm cách nào tôi có thể biết thư mục hiện tại là gì và làm cách nào để thay đổi nó thành thư mục khác có mô-đun của tôi?
Câu trả lời:
Bạn có thể sử dụng os
mô-đun.
>>> import os
>>> os.getcwd()
'/home/user'
>>> os.chdir("/tmp/")
>>> os.getcwd()
'/tmp'
Nhưng nếu đó là về việc tìm kiếm các mô-đun khác: Bạn có thể đặt một biến môi trường được gọi PYTHONPATH
, trong Linux sẽ giống như
export PYTHONPATH=/path/to/my/library:$PYTHONPATH
Sau đó, trình thông dịch cũng tìm kiếm tại nơi này cho import
các mô-đun ed. Tôi đoán tên sẽ giống với Windows, nhưng không biết cách thay đổi.
biên tập
Trong Windows:
set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib
(được lấy từ http://docs.python.org/USE/windows.html )
chỉnh sửa 2
... Và thậm chí tốt hơn: sử dụng virtualenv
và virtualenv_wrapper
, điều này sẽ cho phép bạn tạo một môi trường phát triển nơi bạn có thể thêm các đường dẫn mô-đun như bạn muốn ( add2virtualenv
) mà không làm ô nhiễm cài đặt hoặc môi trường làm việc "bình thường" của bạn.
http://virtualenvwrapper.readthedocs.org/en/latest/command_Vf.html
PYTHONPATH
, nhưng lưu ý rằng OP chỉ định Windows ...
sys.path
bên trong tập lệnh của bạn.
PYTHONPATH
trên toàn cầu nếu bạn đã cài đặt nhiều hơn một Python (hoặc có các chương trình được cài đặt gói Python đó với chúng - nói cách khác bạn sẽ không bao giờ biết): nó có thể phá vỡ cài đặt của bạn theo những cách bí ẩn
bạn muốn
import os
os.getcwd()
os.chdir('..')
os.chdir('C:/Users/Ajeya/Documents')
, hoặc os.chdir('C:\\Users\\Ajeya\\Documents')
, hoặc os.chdir(r'C:\Users\Ajeya\Documents')
.
os.getcwd()
chỉ gọi cho mục đích gỡ lỗi để chúng tôi có thể xem thư mục làm việc là gì trước khi chúng tôi thay đổi nó. Mã để thực sự thay đổi cwd
chỉ làos.chdir('..')
>>> import os
>>> os.system('cd c:\mydir')
Trong thực tế, os.system()
có thể thực thi bất kỳ lệnh nào mà dấu nhắc lệnh windows có thể thực thi, không chỉ thay đổi dir.
Thay đổi thư mục hiện tại không phải là cách để đối phó với việc tìm kiếm các mô-đun trong Python.
Thay vào đó, hãy xem các tài liệu cho Đường dẫn tìm kiếm mô-đun để biết Python tìm mô-đun nào để nhập.
Đây là một chút có liên quan từ phần Mô-đun chuẩn :
Biến sys.path là một danh sách các chuỗi xác định đường dẫn tìm kiếm của trình thông dịch cho các mô-đun. Nó được khởi tạo cho một đường dẫn mặc định được lấy từ biến môi trường PYTHONPATH hoặc từ mặc định tích hợp nếu PYTHONPATH không được đặt. Bạn có thể sửa đổi nó bằng cách sử dụng các hoạt động danh sách tiêu chuẩn:
>>> import sys
>>> sys.path.append('/ufs/guido/lib/python')
Trả lời câu hỏi ban đầu của bạn về việc nhận và thiết lập thư mục hiện tại:
>>> 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/')
Cách dễ nhất để thay đổi thư mục làm việc hiện tại trong python là sử dụng gói 'os'. Dưới đây là một ví dụ cho máy tính windows:
# Import the os package
import os
# Confirm the current working directory
os.getcwd()
# Use '\\' while changing the directory
os.chdir("C:\\user\\foldername")
Nếu bạn import os
có thể sử dụng os.getcwd
để lấy thư mục làm việc hiện tại và bạn có thể sử dụng os.chdir
để thay đổi thư mục của mình