Usando python3 Para instalar o Git - Se o erro Statements / File Reading

3

Como parte de um programa maior, estou usando o git para verificar o programa em si para atualizações. Claro, o usuário precisará instalar o git para fazer isso. Eu criei um pequeno pedaço de código python3 para verificar se o usuário tem o git instalado, mas parece que não funciona:

import linecache
import time
import os

git = linecache.getline('info.txt', 2)
if git == 'no':
               git-ask=input('Is Git Installed? <y/n>\n')
               if git-ask == 'n':
                                 print('Installing Git.')
                                 os.system('apt-get install git-core')
               elif git-ask == 'y':
                                   print("Checking For Updates...")
elif git == "yes":
                 print("Checking For Updates...")
else:
     print("Error: 'GitInfoError'")
     print("Please Contact Eden About This Error: [email protected]")
     time.sleep(5)
     print("Skipping Updates...")

O programa sempre reverte para cláusula else, o que NUNCA deve acontecer! Aqui está o conteúdo do info.txt:

  GIT:
  no
  REBOOT:
  no

Obrigado por qualquer conselho que você possa oferecer!

    
por Eden Crow 15.04.2011 / 20:17

1 resposta

3

Sim, isso pode acontecer (computadores tendem a cometer muito poucos erros; -)

Sua variável git provavelmente tem um caractere de nova linha anexado a ela. Portanto, não é nem "nem" nem "sim", mas sim "não \ n"

Você pode consultar git.rstrip () == 'no' que cortaria qualquer espaço em branco (espaço, abas de nova linha) ou você pode tentar verificar por alguma outra rota a presença do git. Talvez emita 'git --version' e veja se ele retorna com algo razoável ou não.

Deixe-nos saber se você precisar de ajuda com a última abordagem.

    
por DrSAR 15.04.2011 / 20:28