Clique duas vezes no arquivo para executar com script Python específico (Windows 10)
No Windows 10, é possível fazer um arquivo com uma extensão específica ser executado com um determinado script Python? Por exemplo, salvei os arquivos .pickle e escrevi um script Python simples para imprimi-los. Gostaria de clicar duas vezes no arquivo .pickle e fazer com que o script Python que o imprime seja executado.
Consegui criar uma entrada no menu de contexto que fez isso com sucesso. Por exemplo, este script Python simples denominado view_pickle_file.py:
import pickle
import sys
filename = sys.argv[1]
print(filename)
var = pickle.load(open(filename, 'rb'))
print(type(var))
if type(var) == list:
print(len(var))
for ii, value in enumerate(var):
print(ii, value)
elif type(var) == dict:
print(len(var))
for key, val in var.items():
print(key, val, sep="\t")
elif type(var) == set:
print(len(var))
for ii in var:
print(ii)
else:
print(var)
input("Press enter")
E a chave de registro Computer\HKEY_CLASSES_ROOT\SystemFileAssociations\.pickle\shell\View\commandcom um valor de dados REG_SZ (padrão) de "C:\Program Files\Python\Python38\python.exe" "C:\Scripts\Python\view_pickle_file.py" "%1":
cria:
que imprime o arquivo de pickle perfeitamente.
Mas esta é uma entrada do menu de contexto. Quero clicar duas vezes no arquivo .pickle para que isso aconteça. Como eu faria isso? É possível? Ou a entrada do menu de contexto é o mais próximo que posso chegar?
Respostas
Experimente esta atualização de registro:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.pickle]
@="python.pickle"
[HKEY_CLASSES_ROOT\python.pickle]
@="Pickle Document"
[HKEY_CLASSES_ROOT\python.pickle\shell]
[HKEY_CLASSES_ROOT\python.pickle\shell\open]
[HKEY_CLASSES_ROOT\python.pickle\shell\open\command]
@="\"C:\\Program Files\\Python\\Python38\\python.exe\" \"C:\\Scripts\\Python\\view_pickle_file.py\" \"%1\""