[英]How to use python regular expression inside if... else... statement?
我的 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
文件STEST.exe
文件。 否則它應該下載以test_windows-x64
開頭並以STEST.exe
文件STEST.exe
文件。
我是python的新手,我不知道如何做到這一點。 任何人都可以指導我嗎?
這看起來不太可能。 與您要執行的操作相匹配的正則表達式如下所示:
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
。 您不能在請求中使用通配符——網絡服務器必須知道如何處理它們,而它不知道。 更好的方法可能是:
base_url = "http://test.com/test_windows"
if windowsbit == x64:
base_url += "-x64"
version = "2_56_30"
filename = "STEST.exe"
final_url = "{base}_{version}-{filename}".format(
base=base_url, version=version, filename=filename)
可以在沒有正則表達式的情況下嘗試這個:
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.