如何在... else ...语句中使用python正则表达式?

时间:2015-09-26 18:18:39

标签: python python-2.7

我的Python脚本:

import wget

if windowsbit == x86:
    url = 'http://test.com/test_windows_2_56_30-STEST.exe'
    filename = wget.download(url)
else:
    url = 'http://test.com/test_windows-x64_2_56_30-STEST.exe'
    filename = wget.download(url)

在上面的python脚本中,我使用wget模块下载基于Windows 32位或64位的文件格式URL。它按预期工作。

我想使用正则表达式执行以下操作:

如果windowsbit == x86,则应下载以test_windows开头并以STEST.exe文件结尾的文件。 否则它应该下载以test_windows-x64开头并以STEST.exe文件结尾的文件。

我是python的新手,我不知道如何做到这一点。任何人都可以指导我吗?

2 个答案:

答案 0 :(得分:0)

这看起来不太可能。正则表达式与您尝试执行的操作相匹配,如下所示:

.html

但是你不能把它扔进import re urlre = re.compile(""" http://test.com/test_windows # base URL (?P<bit>-x64)? # captures -x64 if present _(?P<version_major>\d+) # captures major version _(?P<version_minor>\d+) # captures minor version _(?P<version_revision>\d+) # captures revision version -STEST.exe # ending filename""", re.X) 。您不能在请求中使用通配符 - 网络服务器必须知道如何处理它们并且它不会。更好的方法可能是:

wget

答案 1 :(得分:-1)

可以在没有正则表达式的情况下尝试:

import wget

text ="http://test.com/test_windows"

if windowsbit == x86:
    url = '{}_2_56_30-STEST.exe'.format(text)
else:
    url = '{}-x64_2_56_30-STEST.exe'.format(text)
filename = wget.download(url)

版本:

import wget

text ="http://test.com/test_windows"
version = '2_56_30'

if windowsbit == x86:
    url = '{}_{}-STEST.exe'.format(text,version)
else:
    url = '{}-x64_{}-STEST.exe'.format(text,version)
filename = wget.download(url)