Como chamar um arquivo de script de shell com argumento variável através de python

0

Estou chamando um arquivo de script de shell por meio de um comando python. Filename1 é uma variável que criei no meu programa python autônomo que armazena o valor real do nome do arquivo. Como escrevo para executar a segunda declaração abaixo, pois a variável Filename não funciona aqui. Se eu mantiver o nome do arquivo real, o arquivo de script de shell será executado através da segunda instrução.

Eu preciso automatizar isso e não posso codificar o nome real do arquivo. Assim, eu quero, se por acaso, a variável puder ser acessada na segunda instrução.

import os
os.system('sh uploadPDFContentFile.sh Filename1')
    
por Alka Ojha 03.09.2018 / 12:34

1 resposta

0

Use melhor o módulo subprocesso .

>>> subprocess.run(["ls", "-l"])  # doesn't capture output
CompletedProcess(args=['ls', '-l'], returncode=0)

O módulo de subprocesso oferece recursos mais poderosos para gerar novos processos e recuperar seus resultados; usar esse módulo é preferível a usar essa função.

Mas, você pode usar a substituição de strings:

call_with_args = "./script2.py '%s' '%s'" % (str(arg1), str(arg2))
os.system(call_with_args)

Ou escreva formato

>>> '{0}, {1}, {2}'.format('a', 'b', 'c')
'a, b, c'
    
por 03.09.2018 / 12:51

Tags