93
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Trong Python, làm thế nào để tôi nhảy vào một tệp trong Windows Explorer? Tôi tìm thấy một giải pháp để nhảy vào các thư mục:
import subprocess
subprocess.Popen['explorer "C:\path\of\folder"']
Nhưng tôi không có giải pháp cho các tập tin.
Trilarion
10.2k9 Huy hiệu vàng63 Huy hiệu bạc101 Huy hiệu Đồng9 gold badges63 silver badges101 bronze badges
Hỏi ngày 11 tháng 11 năm 2008 lúc 19:24Nov 11, 2008 at 19:24
Kirill Titovkirill TitovKirill Titov
1.9614 Huy hiệu vàng20 Huy hiệu bạc33 Huy hiệu đồng4 gold badges20 silver badges33 bronze badges
Một giải pháp đẹp hơn và an toàn hơn [chỉ có trong Windows không may] là os.startfile [].
Khi nó được cung cấp một thư mục thay vì một tệp, nó sẽ mở Explorer.
Tôi biết rằng tôi không trả lời hoàn toàn câu hỏi vì nó không chọn tệp, nhưng sử dụng subprocess
luôn là một ý tưởng tồi [vì lý do bảo mật] và giải pháp này có thể giúp người khác.
Đã trả lời ngày 7 tháng 3 năm 2018 lúc 19:40Mar 7, 2018 at 19:40
6
Vì explorer
có thể được ghi đè, sẽ trực tiếp chỉ một chút an toàn hơn khi chỉ ra điều hành. [cũng phải được học về điều này]
Và trong khi bạn đang ở đó: Sử dụng API quy trình con hiện tại của Python 3S:
import os
import subprocess
FILEBROWSER_PATH = os.path.join[os.getenv['WINDIR'], 'explorer.exe']
def explore[path]:
# explorer would choke on forward slashes
path = os.path.normpath[path]
if os.path.isdir[path]:
subprocess.run[[FILEBROWSER_PATH, path]]
elif os.path.isfile[path]:
subprocess.run[[FILEBROWSER_PATH, '/select,', path]]
0import os
import subprocess
FILEBROWSER_PATH = os.path.join[os.getenv['WINDIR'], 'explorer.exe']
def explore[path]:
# explorer would choke on forward slashes
path = os.path.normpath[path]
if os.path.isdir[path]:
subprocess.run[[FILEBROWSER_PATH, path]]
elif os.path.isfile[path]:
subprocess.run[[FILEBROWSER_PATH, '/select,', path]]
Đã trả lời ngày 21 tháng 6 năm 2018 lúc 9:56Jun 21, 2018 at 9:56
Ewerybodyewerybodyewerybody
1.31313 Huy hiệu bạc28 Huy hiệu đồng13 silver badges28 bronze badges
4
Ngoài ra, bạn có thể sử dụng mô -đun FileOpenBox của EasyGui để mở tệp Explorer để người dùng nhấp qua và sau đó chọn một tệp [trả về FilePath đầy đủ].
import easygui
file = easygui.fileopenbox[]
Đã trả lời ngày 18 tháng 10 năm 2018 lúc 19:48Oct 18, 2018 at 19:48
MacNutterMacnutterMacNutter
1821 Huy hiệu bạc5 Huy hiệu đồng1 silver badge5 bronze badges
0
Vì một số lý do, trên Windows 7, nó luôn mở đường dẫn người dùng, đối với tôi đã làm việc theo dõi:
import subprocess
subprocess.call["explorer C:\\temp\\yourpath", shell=True]
Đã trả lời ngày 2 tháng 12 năm 2014 lúc 13:51Dec 2, 2014 at 13:51
user1767754user1767754user1767754
22K15 Huy hiệu vàng133 Huy hiệu bạc154 Huy hiệu đồng15 gold badges133 silver badges154 bronze badges
4
Đối với bất cứ ai tự hỏi làm thế nào để sử dụng một biến thay cho đường dẫn tệp trực tiếp. Mã dưới đây sẽ mở Explorer và làm nổi bật tệp được chỉ định.
import subprocess
subprocess.Popen[f'explorer /select,{variableHere}']
Mã bên dưới sẽ chỉ mở thư mục được chỉ định trong Explorer mà không làm nổi bật bất kỳ tệp cụ thể nào.
import subprocess
subprocess.Popen[f'explorer "{variableHere}"']
Tôi chỉ được thử nghiệm trên Windows
Đã trả lời ngày 15 tháng 12 năm 2020 lúc 15:57Dec 15, 2020 at 15:57
1
import subprocess
subprocess.Popen[r'explorer /open,"C:\path\of\folder\file"']
Tôi thấy rằng lệnh Explorer /Open sẽ liệt kê các tệp trong thư mục. Khi tôi sử dụng lệnh /select [như được hiển thị ở trên], Explorer đã mở thư mục cha và có thư mục của tôi được tô sáng.
Đã trả lời ngày 6 tháng 7 lúc 18:17Jul 6 at 18:17
Mã để mở thư mục trong Explorer:
import os
import ctypes
SW_SHOWDEFAULT = 10
path_to_open = os.getenv['windir']
ctypes.windll.shell32.ShellExecuteW[0, "open", path_to_open, 0, 0, SW_SHOWDEFAULT]
Đã trả lời ngày 6 tháng 12 năm 2021 lúc 6:27Dec 6, 2021 at 6:27