0

我正在寻找片段,它将检查哪个版本可用于下载更新。我使用python 3.x。因此,如果有人提示我如何检查服务器上可用的版本,那就太好了。输出应生成一个变量,其中存储了 firefox 的版本号。例如 22.0

我使用 linux 作为我选择的操作系统。

明确一点:我不想知道我的系统上已经安装了哪个版本。我想知道哪个版本可以更新。

到目前为止,我得到了以下代码:

def firefox_version_remote():
firefox_version_fresh = os.popen("curl -s -l  ftp.mozilla.org/pub/mozilla.org/firefox/releases/latest/linux-i686/de/").read()
# short name for firefox version num fresh
fvnf = " "

for i in firefox_version_fresh:
    if i.isalpha() != True:
        fvnf = fvnf + i

return fvnf.strip()

这将返回 -22.0..2 它应该返回 22.0

4

1 回答 1

2

您是否考虑过使用正则表达式来匹配您要提取的数字。那会容易很多。像这样的东西:

matches = re.findall(r'\d+(?:\.\d+)+', firefox_version_fresh)
if matches:
  fvnf = matches[0]

这是假设版本的形式为 xy,可能后跟更多子版本(例如 xyz)。

  • \d+是一位或多位数字
  • (?: )+是括号中的一项或多项。告诉编译器?:它是一个非捕获组 - 即您对将括号内的数据提取为一个单独的组不感兴趣。
  • \.\d+匹配一个点后跟一个或多个数字

所以整个表达式可以描述为一个或多个数字,后跟一个或多个点的出现和一个或多个数字。

于 2013-07-01T21:18:34.030 回答