作为一个大型程序的一部分,我正在使用 git 检查程序本身是否有更新。当然,用户需要安装 git 才能这样做。我创建了一小段 python3 代码来检查用户是否安装了 git,但它似乎不起作用:
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...")
程序总是恢复到 else 子句,这绝不应该发生!以下是 info.txt 的内容:
GIT:
no
REBOOT:
no
感谢您提供的任何建议!
答案1
是的,这是有可能发生(计算机往往很少犯错误 ;-)
您的变量 git 很可能附加了换行符。因此它既不是 'no' 也不是 'yes',而是 'no\n'
您可以查询 git.rstrip()=='no',这将删除所有空格(空格、换行符),或者您可以尝试通过其他途径检查 git 是否存在。也许可以发出“git --version”,看看它是否返回了合理的结果。
如果您需要后一种方法的帮助,请告知我们。