Tôi đang cố gắng tìm vị trí của các thư mục hệ thống bằng Python 3.1. Ví dụ: "Tài liệu của tôi" = "C: \ Documents and Settings \ User \ My Documents", "Program Files" = "C: \ Program Files", v.v.Tìm vị trí thư mục hệ thống trong Python
Trả lời
Tôi đã tìm thấy a slightly different way of doing it. Bằng cách này sẽ cung cấp cho bạn vị trí của các thư mục hệ thống khác nhau và sử dụng các từ thực sự thay vì CLSID.
import win32com.client
objShell = win32com.client.Dispatch("WScript.Shell")
allUserDocs = objShell.SpecialFolders("AllUsersDesktop")
print allUserDocs
thư mục có sẵn khác: AllUsersDesktop, AllUsersStartMenu, AllUsersPrograms, AllUsersStartup, Desktop, Favorites, Fonts, MyDocuments,, Nethood, Printhood, gần đây, SendTo, StartMenu, Startup & Templates
Để lấy thư mục "My Documents", bạn có thể sử dụng:
from win32com.shell import shell
df = shell.SHGetDesktopFolder()
pidl = df.ParseDisplayName(0, None,
"::{450d8fba-ad25-11d0-98a8-0800361b1103}")[1]
mydocs = shell.SHGetPathFromIDList(pidl)
print mydocs
Từ here.
Tôi không chắc chắn câu thần chú tương đương là gì cho "Program Files", nhưng hy vọng đó là đủ để giúp bạn bắt đầu.
Trong Python <3, yeah. Trong Python 3.1: >>> từ vỏ win32com.shell nhập khẩu Traceback (gần đây nhất gọi cuối cùng): File "
Được cài đặt win32com chưa? Có các phiên bản có sẵn cho Python 3.1 (xem http://sourceforge.net/projects/pywin32/files/) –
[Chỉnh sửa] hoạt động tốt, cảm ơn! –
Trong Windows 7 tôi có thể sử dụng các biến môi trường sau để truy cập các thư mục mà tôi cần:
>>> import os
>>> os.environ['USERPROFILE']
'C:\\Users\\digginc'
>>> os.environ['PROGRAMFILES']
'C:\\Program Files'
Tôi đang trên 7 tại thời điểm này và điều này hoạt động độc đáo. Bạn có biết mức độ đáng tin cậy của việc sử dụng nền tảng này không? Tài liệu này không giúp được gì nhiều. Cảm ơn. –
Tôi không biết ông Chimp, xin lỗi. – cdiggins
Gọi API Windows để thực hiện việc này, từ Vista, là SHGetKnownFolderPath. Có một wrapper được cấp phép MIT (sử dụng ctypes, do đó không phụ thuộc vào pywin32) here.
>>> from knownpaths import *
>>> get_path(FOLDERID.ProgramFilesX86)
u'C:\\Program Files (x86)'
- 1. Vị trí thư mục Linux/Ubuntu ~/.vim/syntax/
- 2. Cài đặt gói Python từ thư mục hệ thống tệp cục bộ bằng pip
- 3. Vị trí thư mục dữ liệu mysql
- 4. Thay đổi vị trí thư mục EditorTemplates
- 5. MonoTouch: tmp vị trí thư mục?
- 6. Trạng thái hệ thống trong python
- 7. Cách tìm loại hệ thống tệp trong python
- 8. Python tạo hệ thống
- 9. Gắn thẻ hệ thống tệp thay vì thư mục?
- 10. Tìm hiểu vị trí của các vị trí khác nhau
- 11. Cách tìm vị trí của Thư mục Trung tâm trong một tệp Zip?
- 12. Tìm vị trí/Vị trí của JFrame trong cửa sổ
- 13. tìm vị trí tweet
- 14. Thay đổi vị trí của thư mục thành phần
- 15. vị trí thư mục cài đặt máy khách sql sóc
- 16. Thay đổi vị trí thư mục kho Git.
- 17. Cách chọn thư mục và lưu trữ vị trí bằng tkinter bằng Python
- 18. Cách tìm thư mục "Tài liệu của tôi" trong Java
- 19. Hỗ trợ python Vim với python không phải hệ thống
- 20. Tìm "thư mục chính" bằng Python?
- 21. Tìm hiểu hệ thống Java kế thừa
- 22. Tìm vị trí của tệp m hiện tại trong MATLAB
- 23. Phát lệnh hệ thống gốc trong Scala
- 24. AWS Cấu hình thư mục ảo và hệ thống gửi thư của Tomcat
- 25. Python - Tạo một hệ thống "tập lệnh"
- 26. Tìm nhiều vị trí chuỗi trong PHP
- 27. Làm cách nào để có được vị trí hệ thống tệp của tập lệnh PowerShell?
- 28. Làm cách nào để đưa thư viện python .egg vào thư mục con (vị trí tương đối)?
- 29. Dự án Python và bố trí thư mục gói
- 30. Sao chép cấu trúc thư mục (tệp sans) từ một vị trí khác
Thư viện này có được ghi lại ở bất kỳ đâu không? Trang SourceForge chỉ là một mê cung của các quảng cáo biểu ngữ và các wiki rỗng. Tôi đang tìm thư mục Program Files (hoặc, ít nhất, đó là những gì nó được sử dụng để được gọi trong Windows ... may mắn là tôi đã không phải đối phó với Windows trong một thời gian rất dài). 'AllUsersPrograms' dường như trả về đường dẫn đến 'Programs' trong menu Start (điều này thật thú vị, vì tôi không chắc mình đã tìm thấy menu Start trong Windows Server 2012!) –
@MIchael Scheper Tôi e là mình đã không chạm vào nó kể từ khi tôi hỏi câu hỏi này và SourceForge đã đi xuống dốc trầm trọng kể từ đó. Có thể thử kiểm tra 'objShell' và xem có phương pháp nào để xem tất cả các tên' SpecialFolder' không? –
Cảm ơn. Những gì tôi đã tìm thấy cho đến nay là http://aspn.activestate.com/ASPN/docs/ActivePython/2.4/pywin32/com.html và, nói chung, http://aspn.activestate.com/ASPN/docs/ ActivePython/2.4/pywin32/win32_modules.html, và một nhận xét đọc 'Pywin32 bị ràng buộc chặt chẽ đến các cuộc gọi win32 mà về cơ bản bạn chỉ cần nhìn vào MSDN và sử dụng cú pháp trong Python, phần lớn.' Tôi chưa tự xác minh điều này, nhưng có lẽ điều này sẽ giúp đưa các nhà cung cấp khác đi đúng hướng. –