Pergunta

Gostaria de arrastar e soltar meu arquivo de dados em um script Python e tê-lo processar o arquivo e gerar saída. O script Python aceita o nome do arquivo de dados como um parâmetro de linha de comando, mas o Windows Explorer não permitir que o script a ser um destino de soltar.

Existe algum tipo de configuração que precisa ser feito em algum lugar para este trabalho?

Foi útil?

Solução

Claro. De um artigo tecnologia sem sentido chamado "Make Scripts Python droppable em Windows ", você pode adicionar um manipulador de queda, adicionando uma chave de registo:

Aqui está um arquivo de importação do registro que você pode usar para fazer isso. copie o a seguir em um arquivo .reg e executá-lo (Certifique-se de que as suas extensões .py são mapeados para Python.File).

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Python.File\shellex\DropHandler]
@="{60254CA5-953B-11CF-8C96-00AA00B8708C}"

Isso faz com scripts Python usar o manipulador de queda WSH, que é compatível com nomes de arquivos longos. Para usar o manipulador de arquivo curto, substitua o GUID com 86C86720-42A0-1069-A2E8-08002B30309D.

Um comentário nesse post indica que se pode permitem cair na "há arquivos de console Python (.pyw)" ou "arquivos Python compilados (.pyc)" usando as classes Python.NoConFile e Python.CompiledFile.

Outras dicas

escrever um simples script shell (file.bat)

"C:\python27\python.exe" yourprogram.py %*

onde %* representa os todos os argumentos que você passar para o script.

Agora arraste e solte seus arquivos de destino no ícone file.bat.

Com uma python instalado - pelo menos 2.6.1 -. Você pode simplesmente arrastar e soltar qualquer arquivo em um script python

import sys
droppedFile = sys.argv[1]
print droppedFile

sys.argv[0] é o próprio script. sys.argv[n+1] são os arquivos que caíram.

Tente usar py2exe. Use py2exe para converter o script python em um executável do Windows. Você deve então ser capaz de arrastar e soltar arquivos de entrada para o seu script no Windows Explorer. Você também deve ser capaz de criar um atalho na área de trabalho e soltar arquivos de entrada para ele. E se o seu script python pode tomar uma lista de arquivos que você deve ser capaz de arrastar e soltar vários arquivos em seu roteiro (ou atalho).

Criar um atalho do arquivo. No caso de você não tem python arquivos .py abertas por padrão, vá para as propriedades do atalho e editar o destino do atalho para incluir a versão python que você está usando. Por exemplo:

alvo: C: \ Python26 \ python.exe

Estou postando isso porque eu não queria editar o registro ea solução .bat não funcionou para mim.

1). criar atalho de .py
2). clique direito -> Propriedades
3). prefixo "Target:" com "python" para que ele corre o .py como um argumento para o comando python
ou
1). criar um .bat
2). python some.py% *

essas versões de atalho são mais simples para eu fazer o que eu estou fazendo
caso contrário eu convertê-lo em um .exe, mas preferia apenas usar Java ou C / C ++

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top