Adicionando caminhos de arquivo ao código Python

1

Atualmente, estou executando o código de um programa chamado HotNet .

Em seu arquivo simpleRun.py , há um local para inserir um caminho de arquivo a ser executado.

parser.add_argument('-mf', '--infmat_file', required=True,
                    help='Path to .mat file containing influence matrix')

Meu arquivo de caminho é /home/lai/Downloads/influence_matrix_files/hprd_inf_.mat ; e tentei adicioná-lo da seguinte forma:

parser.add_argument('-mf', '--infmat_file', required=True,
                    help= /home/lai/Downloads/influence_matrix_file/hprd_inf_.mat)

Mas recebo SyntaxError ao executar o código:

File "simpleRun.py", line 29
    help= ~/home/lai/Downloads/influence_matrix_files/hprd_inf_.mat)
           ^
SyntaxError: invalid syntax

Eu também tentei colocar o caminho entre aspas (como as strings ' ' ), mas isso não é processado.

Eu tentei remover o / , mas isso apenas retorna o seguinte erro:

NameError: global name 'home' is not defined

Como corrijo isso?

    
por user260362 20.03.2014 / 21:01

3 respostas

3

Em vez de editar o arquivo py, basta chamar o simpleRun.py com o argumento:

python simpleRun.py -mf /home/lai/Downloads/influence_matrix_file/hprd_inf_.mat

ou

python simpleRun.py --infmat_file=/home/lai/Downloads/influence_matrix_file/hprd_inf_.mat
    
por cyberbill79 20.03.2014 / 21:10
2

A resposta do @cyberbills está completamente correta, mas eu queria adicionar mais algumas explicações.

Você não deve editar o arquivo simpleRun.py para adicionar seu caminho - ele já está definido, e o argumento "help" está disponível para ajudá-lo quando você executar o script simpleRun.py na linha de comando.

Em outras palavras, o argumento help não mantém o caminho, mas dá ajuda ao uso para usar o -mf flag.

Quando você usa o simpleRun.py com "mf", você o executará como simpleRun.py -mf <file.mat> .

(Nota: faça um chmod +x no simpleRun.py se você quiser executá-lo digitando ./simpleRun.py . Caso contrário, use python ./simpleRun.py como o cyberbill indica).

Todos os argumentos do analisador em simpleRun.py funcionam dessa maneira. O campo de texto no help arg é o feedback da linha de comando.

Você pode ver isso fornecendo o sinalizador --help ao comando:

$python simpleRun.py --help
usage: simpleRun.py [-h] [-r RUNNAME] -mf INFMAT_FILE -if INFMAT_INDEX_FILE
                    -hf HEAT_FILE [-ms MIN_HEAT_SCORE] [-ccs MIN_CC_SIZE] -pnp
                    PERMUTED_NETWORKS_PATH [-n NUM_PERMUTATIONS]
                    [-o OUTPUT_DIRECTORY] [--parallel] [--no-parallel]
                    [-ef EDGE_FILE] [-nn NETWORK_NAME]

Helper script for simple runs of generalized HotNet2, including automated
parameter selection.

optional arguments:
  -h, --help            show this help message and exit
  -r RUNNAME, --runname RUNNAME
                        Name of run / disease.
  -mf INFMAT_FILE, --infmat_file INFMAT_FILE
                        Path to .mat file containing influence matrix
    
por belacqua 20.03.2014 / 23:10
-1

~/ é o mesmo que /home/lai , por isso você deseja usar ~/Downloads ou /home/lai/Downloads .

    
por Srijay Kasturi 20.03.2014 / 21:05