2013-07-26 37 views

Trả lời

31
>>> import os 
>>> print os.path.abspath(os.curdir) 
C:\Python27 
>>> os.chdir("..") 
>>> print os.path.abspath(os.curdir) 
C:\ 
23

Sử dụng os mô-đun:

import os 
os.chdir('..') 

nên làm việc

+0

Đánh bại tôi với nó !! –

+2

LOL - biết bạn cảm thấy như thế nào thường xuyên :) Tốc độ mà câu trả lời xuất hiện ở đây đôi khi điên rồ - Tôi thề một số người sống trên SO! –

12

Rõ ràng os.chdir đó ('..') là câu trả lời đúng ở đây. Nhưng chỉ trong FYI, nếu trong tương lai bạn gặp phải tình huống khi bạn phải thao tác rộng rãi các thư mục và đường dẫn, đây là một gói lớn (Unipath) cho phép bạn coi chúng là đối tượng Python: https://pypi.python.org/pypi/Unipath

để bạn có thể làm điều gì đó như thế này:

>>> from unipath import Path 
>>> p = Path("/usr/lib/python2.5/gopherlib.py") 
>>> p.parent 
Path("/usr/lib/python2.5") 
>>> p.name 
Path("gopherlib.py") 
>>> p.ext 
'.py' 
+0

Trong python3.4 * pathlib * được giới thiệu, có nghĩa là để giải quyết cùng một vấn đề (tham khảo câu trả lời của tôi để biết thêm chi tiết). – Kim

8

Vâng .. Tôi không chắc chắn cách os.chdir ('..') thực sự là như thế nào. Dưới Unix là những tên tập tin thực. Tôi thích những điều sau đây:

import os 
os.chdir(os.path.dirname(os.getcwd())) 

Thư mục làm việc hiện tại, nâng cấp một thư mục rồi thay đổi thư mục đó.

+5

cũng có thể gõ ít hơn, 'os.chdir (os.path.pardir) '. Câu trả lời này độc lập hơn một chút, nhưng nó là điểm moot vì bạn có thể tưởng tượng một nền tảng không đại diện cho '..' làm thư mục mẹ, bất kỳ nền tảng nào mà bất kỳ ai hiện đang sử dụng (bao gồm cả cửa sổ và UNIX) đại diện cho nó theo cách đó. – aestrivex

+0

Vâng bạn đã đúng! Tôi vừa hoàn thành thử nghiệm nó trên một cửa sổ hộp, và '..' hoạt động tốt. Tôi luôn mong đợi rất ít cửa sổ nhưng đôi khi làm tôi ngạc nhiên :). Tuy nhiên, chuỗi ma thuật xả rác mã của tôi luôn làm phiền tôi. – aychedee

+0

Tôi đồng ý, nhưng chỉ tập trung: Tôi tự hỏi liệu sẽ có bao giờ * là một hệ thống thực sự không sử dụng quy ước cụ thể này. – aestrivex

2

Trong Python 3.4 pathlib đã được giới thiệu:

>>> from pathlib import Path 
>>> p = Path('/etc/usr/lib') 
>>> p 
PosixPath('/etc/usr/lib') 
>>> p.parent 
PosixPath('/etc/usr') 

Nó cũng đi kèm với nhiều tính năng hữu ích khác ví dụ để tham gia đường dẫn bằng cách sử dụng dấu gạch chéo hoặc dễ dàng đi bộ cây thư mục.

Để biết thêm thông tin, hãy tham khảo docs hoặc this post, bao gồm sự khác biệt giữa os.path và pathlib.

Các vấn đề liên quan