2008-09-03 15 views
7

Tôi muốn mở một cửa sổ thư mục, trong trình quản lý tệp thích hợp, từ trong ứng dụng Python đa nền tảng (windows/mac/linux).Cách chuẩn để mở một cửa sổ thư mục trong linux?

Ngày OSX, tôi có thể mở một cửa sổ trong công cụ tìm với

os.system('open "%s"' % foldername) 

và trên Windows với

os.startfile(foldername) 

gì về unix/linux? Có một cách tiêu chuẩn để làm điều này hoặc tôi có trường hợp đặc biệt gnome/kde/etc và tự chạy các ứng dụng thích hợp (nautilus/konqueror/etc)?

Điều này trông giống như một thứ có thể được chỉ định bởi các người freedesktop.org (một mô-đun python, tương tự như webbrowser, cũng sẽ tốt đẹp!).

Trả lời

9
os.system('xdg-open "%s"' % foldername) 

xdg-open thể được sử dụng cho các tập tin/url cũng

+5

nó tốt hơn để sử dụng 'nhập khẩu subprocess' /' subprocess.Popen ([ 'xdg mở', tên thư mục]) 'vấn đề như thế này tránh trích dẫn –

0

điều này có thể phải được thực hiện thủ công hoặc có mục cấu hình vì có nhiều trình quản lý tệp mà người dùng có thể muốn sử dụng. Cung cấp một cách cho các tùy chọn lệnh là tốt.

Có thể có chức năng khởi chạy mặc định cho kde hoặc gnome trong bộ công cụ tương ứng nhưng tôi không có lý do để tìm kiếm chúng.

0

Bạn sẽ phải thực hiện việc này dựa trên trình quản lý cửa sổ đang chạy. OSX và Windows có một cách tiêu chuẩn (defacto) vì chỉ có một lựa chọn.

Bạn không cần phải chỉ định ứng dụng trình quản lý tệp chính xác, tuy nhiên, điều này có thể thực hiện thông qua wm. Tôi biết Gnome làm, và điều quan trọng là làm điều này trong KDE vì có hai trình quản lý tệp có thể (Konqueror/Dolphin) có thể đang được sử dụng.

Tôi đồng ý rằng điều này sẽ là một điều tốt cho freedesktop.org để chuẩn hóa, mặc dù tôi nghi ngờ điều đó sẽ xảy ra trừ khi ai đó bước lên và tình nguyện viên làm điều đó.


EDIT: Tôi không biết xdg-open. Tốt để biết!