Có cách nào đơn giản để di chuyển lên một thư mục trong python bằng cách sử dụng một dòng mã không? Một cái gì đó tương tự như cd ..
trong dòng lệnhDi chuyển lên một thư mục trong Python
Trả lời
>>> import os
>>> print os.path.abspath(os.curdir)
C:\Python27
>>> os.chdir("..")
>>> print os.path.abspath(os.curdir)
C:\
Sử dụng os
mô-đun:
import os
os.chdir('..')
nên làm việc
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'
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
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 đó.
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
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
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
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.
- 1. Di chuyển nội dung thư mục con vào thư mục mẹ trong python
- 2. Cách di chuyển lên một thư mục có Thiết bị đầu cuối trong OSX
- 3. Di chuyển một mục lên/xuống một lựa chọn
- 4. DOS lệnh để di chuyển tất cả các tệp trong thư mục con lên một cấp lên
- 5. Di chuyển một mục trong danh sách?
- 6. Di chuyển thư mục từ thư mục này sang thư mục khác trong tập lệnh batch
- 7. Mục tiêu Ant để di chuyển các thư mục ra khỏi một thư mục khác
- 8. Drupal - di chuyển mô-đun thư mục
- 9. Di chuyển Thư mục với Lịch sử
- 10. Lệnh Linux để di chuyển một thư mục
- 11. XSLT: Di chuyển nút một cấp lên
- 12. Git rebase và di chuyển thư mục trong submodule
- 13. Bash: Làm cách nào để di chuyển tất cả nội dung trong thư mục lên đến một cấp?
- 14. Làm thế nào để di chuyển thư mục svn lên mức trên
- 15. Lệnh batch của Windows để di chuyển tất cả các thư mục trong một thư mục có ngoại lệ
- 16. Nhận thư mục lên một mức
- 17. Di chuyển thư mục từ Máy tính đến máy chủ?
- 18. Có thể di chuyển thư mục tmp của Eclipse?
- 19. Di chuyển các tệp theo python
- 20. Cách di chuyển nhiều thư trong mutt
- 21. Git Di chuyển tập tin vào thư mục
- 22. Di chuyển các tập tin giữa các thư mục
- 23. di chuyển thư mục cài đặt SDK Android
- 24. Di chuyển tất cả các DLL và PYD đến một thư mục con với cx_Freeze
- 25. Bash/Shell-Di chuyển tất cả các tệp từ thư mục con vào thư mục đích?
- 26. Di chuyển thư mục bằng cách sử dụng Qt
- 27. Di chuyển an toàn thư mục Microsoft SDK
- 28. Di chuyển thư viện R
- 29. Di chuyển tất cả các file từ thư mục vào thư mục khác với java
- 30. cách di chuyển mục listview lên hoặc xuống bằng một nút bấm
Đánh bại tôi với nó !! –
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! –