‘壹’ 用python生成在html中显示的表格
可以通过写python脚本制作HTML的form,包括HTML的标签什么的
python 有个第三方库pyh用来生成HTML,可以试用一下:
from pyh import *
page = PyH('This is PyH page')
page << h1(cl='center', 'My big title')
table1 = page << table(border='1',id='mytable1')
headtr = table1 << tr(id='headline')
headtr << td('Head1') << td('Head2')
tr1 = table1 << tr(id='line1')
tr1 << td('r1,c1') <<td('r1,c2')
tr2 = table1 << tr(id='line2')
tr2 << td('r2,c1') <<td('r2,c2')
page.printOut()
‘贰’ Python如何将上百个pyecharts生成的html转成图片格式
程序导出word文档的方法
将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob、Apache POI、Java2Word、iText等各种方式,以及使用freemarker这样的模板引擎这样的方式。php中也有一些相应的方法,但在python中将web/html内容生成world文档的方法是很少的。其中最不好解决的就是如何将使用js代码异步获取填充的数据,图片导出到word文档中。
1. unoconv
功能:
1.支持将本地html文档转换为docx格式的文档,所以需要先将网页中的html文件保存到本地,再调用unoconv进行转换。转换效果也不错,使用方法非常简单。
?
\# 安装
sudo apt-get install unoconv
\# 使用
unoconv -f pdf *.odt
unoconv -f doc *.odt
unoconv -f html *.odt
缺点:
1.只能对静态html进行转换,对于页面中有使用ajax异步获取数据的地方也不能转换(主要是要保证从web页面保存下来的html文件中有数据)。
2.只能对html进行转换,如果页面中有使用echarts,highcharts等js代码生成的图片,是无法将这些图片转换到word文档中;
3.生成的word文档内容格式不容易控制。
2. python-docx
功能:
1.python-docx是一个可以读写word文档的python库。
使用方法:
1.获取网页中的数据,使用python手动排版添加到word文档中。
‘叁’ python如何合并两个列表
python合并两个列表的方法:1、可以使用加法方法实现列表合并,例“c = a+b”;2、可以通过python的extend方法完成列表合并,例“a.extend(b)”。
python合并两个列表的方法:
首先打开代码编辑器,进入代码编译环境
第一种使用加法方法实现列表相加
a = [1,2,3]
b = [4,5,6]
c = a+b
使用编译器执行得出结果c为[1,2,3,4,5,6]
第二种方法可以通过python的extend方法完成列表相加
输入代码
a = [1,2,3]
b = [4,5,6]
a.extend(b)
编译执行得出a的结果为[1,2,3,4,5,6]
推荐教程:《python教程》以上就是小编分享的关于python如何合并两个列表?的详细内容希望对大家有所帮助,更多有关python教程请关注环球青藤其它相关文章!
‘肆’ python HTML展示表格数据(有合并的单元格)
拷贝一下代码并保存到本地,然后运行它,再打开那个Demo的链接就可以看到效果了
#!/usr/bin/envpython3
fromos.pathimportdirname,abspath,joinasjoinpath
L=[(1,2),(1,2),(1,3),(2,4),(2,5)]
column_names=('列名','数据')
odict=OrderedDict()
fork,vinL:
ifknotinodict:
odict[k]=[v]
else:
odict[k].append(v)
sa='''
<!DOCTYPEHTML>
<metacharset="UTF-8">
<html>
<body>
<tableborder="1"cellpadding="10">
<tr>
<th>{}</th>
<th>{}</th>
</tr>
'''.format(*column_names)
sc='''
</table>
</body>
</html>
'''
sb=[]
tdform='<tdalign="center">{}</td>'.format
fork,vinodict.items():
iflen(v)==1:
sb.append('<tr>')
sb.append(tdform(k))
sb.append(tdform(v))
sb.append('</tr>')
else:
fori,subvinenumerate(v):
sb.append('<tr>')
ifi==0:
sb.append('<tdrowspan="{}"align="center">{}</td>'.format(
len(v),k))
sb.append(tdform(subv))
sb.append('</tr>')
fn='table.html'
ss=sa+' '.join(sb)+sc
try:
frombs4importBeautifulSoup
soup=BeautifulSoup(ss)
ss=soup.prettify()
except:
pass
withopen(fn,'w')asf:
f.write(ss)
print(ss)
print('Demo:file://'+joinpath(abspath(dirname(__file__)),fn))
‘伍’ python合并多个相同表头文件
-- coding:utf-8 --
import xlrd, xlsxwriter
待合并excel
allxls = [“C:\Users\zhudong\Desktop\azkaban自动爬取\2018-09-01.xlsx”,
“C:\Users\zhudong\Desktop\azkaban自动爬取\2018-09-02.xlsx”,
“C:\Users\zhudong\Desktop\azkaban自动爬取\2018-09-03.xlsx”]
目标excel
end_xls = “C:\Users\zhudong\Desktop\azkaban自动爬取\99-99-99.xlsx”
def open_xls(file):
try:
fh = xlrd.open_workbook(file)
return fh
except Exception as e:
print(“打开文件错误:” + e)
根据excel名以及第几个标签信息就可以得到具体标签的内容
def get_file_value(filename, sheetnum):
rvalue = []
fh = open_xls(filename)
sheet = fh.sheets()[sheetnum]
row_num = sheet.nrows
for rownum in range(0, row_num):
rvalue.append(sheet.row_values(rownum))
return rvalue
endxls = xlsxwriter.Workbook(end_xls)
for item in allxls:
first_file_fh = open_xls(item)
first_file_sheet = first_file_fh.sheets()
end_xls_sheet = endxls.add_worksheet(first_file_sheet[0].name)
sheet_values = get_file_value(item,0)
for row_index,u in enumerate(sheet_values, start=0):
for i in range(0,len(u)):
end_xls_sheet.write(row_index, i, u[i])
endxls.close()
‘陆’ 求组,使用Python合并多个EXCEL表格时,如果表格有密码,密码已知,该怎么通过pandas合并
python操作excel的库有:xlrd和xlwt,这两个库一个可以读一个可以写。
当然你可以直接用openpyxl这个库,支持读写。
代码就是写一个while循环读取每一个条目比较合并。
既然是作业,还是自己写一下,对自己是有好处的。用上面的库可以完成你的需求,你只需要去看看官网怎么用这个库,应该就可以写出来了。
‘柒’ python怎么动态生成html表格报告
..conn = sqlite3.connect(database='thedbfile')curr = conn.cursor()curr.execute("select * from thetable") tr1 = table1 << tr(id="header")for field in curr.description: tr1 << th(field[0]) for row in curr: tr2 = table1 << tr() for item in row: tr2 << td(item) curr.close()conn.close()...以上代码基于1L"就是累w_w"的方案进行完善
‘捌’ python怎样做html的表格
现要实现python制作html格式的表格,利用Python对字符串str.format()格式化操作进行处理,在日常对CVS格式文件处理过程当中,经常会将CVS格式文件进行转换,在正式场合是程序读取CVS文件进行转换并输出到html格式的文件当中,但现在只是实现一下转换的过程,需要输入以逗号分隔的数据。
在设计程式的时候,需要先定义一下整个代码的框架,首先我们要定义一个主函数main(),虽然Python没有规定入口函数,一般在正式的开发中都设计了一个main()函数作为程序的入口函数,或许这是一种规范吧。然后我们在定义一个打印表头的方法print_head(),并在主函数里进行调用。再定义一个打印表尾的方法print_end(),也在主函数中进行调用。定义print_line()为打印表格行,定义extract_field()处理cvs行数据转换为list集合数据。最后再定义一个处理特殊符号的方法escape_html(),因为在html代码中为了避免与它的标签冲突,特要进行特殊符号的转换,如&-->&
还有就是对长度过长的数据要进行处理并用...代替
源代码:
#Author Tandaly
#Date 2013-04-09
#File Csv2html.py
#主函数
def main():
print_head()
maxWidth = 100
count = 0
while True:
try:
line = str(input())
if count == 0:
color = "lightgreen"
elif count%2 == 0:
color = "white"
else:
color = "lightyellow"
print_line(line, color, maxWidth)
count += 1
except EOFError:
break
print_end()
#打印表格头
def print_head():
print("")
#打印表行
def print_line(line, color, maxWidth):
tr = "".format(color)
tds = ""
if line is not None and len(line) > 0:
fields = axtract_fields(line)
for filed in fields:
td = "{0}".format(filed if (len(str(filed)) <= maxWidth) else
(str(filed)[:100] + "..."))
tds += td
tr += "{0}
".format(tds)
print(tr)
#打印表格尾
def print_end():
print("")
#抽取行值
def axtract_fields(line):
line = escape_html(line)
fields = []
field = ""
quote = None
for c in line:
if c in "\"":
if quote is None:
quote = c
elif quote == c:
quote = None
continue
if quote is not None:
field += c
continue
if c in ",":
fields.append(field)
field = ""
else:
field += c
if len(field) > 0:
fields.append(field)
return fields
#处理特殊符号
def escape_html(text):
text = text.replace("&", "&")
text = text.replace(">", ">")
text = text.replace("<", "<")
return text
#程序入口
if __name__ == "__main__":
main()
运行结果:
>>>
"nihao","wo"
nihaowo
"sss","tandaly"
...tandaly
"lkkkkkkkkkkksdfssssssssssssss",
34
...34
‘玖’ 怎么用python 编写 得到本地网页html中的表格
本地网页?
如果是一般的网页,表格是csv格式,或者txt格式,可以用pandas包读取,举例:如果是csv格式,这样写:
import pandas as pd
df = pd.read_csv('http:\\......') #表格所在的网址
df # 显示表格数据
如果是txt格式的,把read_csv换成read_table就可以了。
‘拾’ python使用plotly生成了多个离线图表,如何将他们合并成一个html做展示
本人在使用groovy爬取了全国3000+城市的历史天气之后,需要把每个城市的历史天气都绘制一张Time Series表格,用来反映各地的最高温最低温温差的变化曲线。这里遇到了一个问题,每次plotly绘制完图标总会调起系统浏览器打开呈现,一旦我批量生成N多张表格时,电脑就会卡死了。在使用中文作为文件名的时候遇到了一个错误,这个错误刚好能巧妙解决这个问题。在不同编码格式的字符拼接时文件路径时,会报错,报错内容如下:
'ascii' codec can't encode characters in position 69-70: ordinal not in range(128)
然后程序停止运行,但是文件已经生成了。在做了异常处理后,刚好能满足需求。关于python2.7的编码问题,并不是很了解为什么出这个错。有大神了解的可以分享一下。
python部分的代码如下:
#!/usr/bin/python
# coding=utf-8
from first.date import DatePlot
import os
from second.MysqlFission import MysqlFission
import shutil
import time
class Fission:
x = []
y = []
z = []
d = []
def __init__(self):
print "欢迎使用fission类!"
# def __init__(self,x,y,z,d):
# def __init__(self,name):
# self.name = name
# print "欢迎使用fission类!"
def getData(self, name):
size = 0;
with open("/Users/Vicky/Documents/workspace/source_api/long/" + name + ".log") as apidata:
for i in apidata:
data = i.split(" ")[0].split("|")[0]
low = i.split(" ")[0].split("|")[1]
high = i.split(" ")[0].split("|")[2]
diff = int(high) - int(low)
self.x.append(data)
self.y.append(low)
self.z.append(high)
self.d.append(diff)
size += 1;
def getDataMarkLine(self, name):
with open("/Users/Vicky/Documents/workspace/source_api/long/" + name + ".log") as apidata:
for i in apidata:
data = i.split(" ")[0].split("|")
day = data[0]
time = float(data[1])
self.x.append(day)
self.y.append(time)
return [self.x, self.y]
if __name__ == "__main__":
names = []
for name in names:
name = u"三沙"
sql = MysqlFission()
sql.getWeather(name)
fission = Fission()
fission.x = []
fission.y = []
fission.z = []
fission.d = []
fission.getData(name)
try:
DatePlot.MakePlotTwo(fission.x, name, high=fission.y, low=fission.z, diff=fission.d)
except BaseException:
print 2
shutil.file(name + ".html", "/Users/Vicky/Desktop/w/" + name + ".html")
os.remove(name + ".html")
time.sleep(5)
下面是北京市的效果图: