【发布时间】:2016-09-13 13:43:36
【问题描述】:
我已将 Python 2.7 例程更改为接受文件路径作为例程的参数,因此我不必通过在方法中插入多个文件路径来复制代码。
当我的方法被调用时,我得到以下错误:
looks like a filename, not markup. You should probably open this file and pass the filehandle into Beautiful Soup.
'"%s" looks like a filename, not markup. You should probably open this file and pass the filehandle into Beautiful Soup.' % markup)
我的方法实现是:
def extract_data_from_report3(filename):
html_report_part1 = open(filename,'r').read()
soup = BeautifulSoup(filename, "html.parser")
th = soup.find_all('th')
td = soup.find_all('td')
headers = [header.get_text(strip=True) for header in soup.find_all("th")]
rows = [dict(zip(headers, [td.get_text(strip=True) for td in row.find_all("td")]))
for row in soup.find_all("tr")[1:-1]]
print(rows)
return rows
调用方法如下:
rows_part1 = report.extract_data_from_report3(r"E:\test_runners\selenium_regression_test_5_1_1\TestReport\SeleniumTestReport_part1.html")
print "part1 = "
print rows_part1
如何将文件名作为参数传递?
【问题讨论】: