所以我有這種方法提取一些html數據和圖像鏈接,組織它成爲一個預先製作的模板,然後通過webbrowser.open或通過webbrowser.open顯示它,或返回整個html代碼作爲字符串(當用於外部程序時)TypeError當試圖傳遞*參數re.findall
在此之前,我只在內部調用此函數並手動輸入url,程序每次都成功創建模板。現在re.findall()不接受元組*參數,不管我嘗試了什麼(''.join, '{}'.format(tup), repr(), str()
),它們都不起作用。使用Python 2.7.12。所以基本上我的問題是如何將* args(它總是一個字符串)傳遞給create_template()?
def create_template(*args):
p = re.compile('(?<=\/)[0-9]+|[0-9]+(?!.)')
if args:
argstring = '{}'.format(args)
itemID = re.findall(p,argstring)[0]
new_html = change_links(itemID)
info = get_walmart_info(itemID)
template = finish_template(new_html,info)
webbrowser.open('finished wtemplate.html')
return template
else:
url = raw_input("Enter itemID/url: ")
itemID = re.findall(p,url)[0]
new_html = change_links(itemID)
info = get_walmart_info(itemID)
finish_template(new_html,info)
webbrowser.open('finished wtemplate.html')
if __name__ == '__main__':
create_template()
,我得到錯誤(當外部使用時,內部使用尚精):
Traceback (most recent call last):
File "<pyshell#23>", line 1, in <module>
wTemplate.create_template('37651390')
File "C:\Users\User\Desktop\Gal\Programming\wTemplate.py", line 91, in create_template
argstring = '{}'.format(*args)
File "C:\Python27amd64\lib\re.py", line 181, in findall
return _compile(pattern, flags).findall(string)
TypeError: expected string or buffer
你傳遞了什麼論點? –
您的錯誤和您的代碼似乎不匹配。 –
你能提供一個示例輸入和期望的輸出嗎?我不清楚'create_template()'應該做什麼 –