More Related Content Similar to pythonでオフィス快適化計画 Similar to pythonでオフィス快適化計画 (20) More from Kazufumi Ohkawa More from Kazufumi Ohkawa (20) pythonでオフィス快適化計画2. 自己紹介
• kzfm (@fmkz___)
– blog.kzfmix.com
– Shizuoka.py
• とある製薬企業の研究員
• 日本酒とdrum n bass好き
• Python歴は6年くらい
– (その前はPerl)
• よく使うのはFlask, Pandas
25. コード
from
Bio
import
Entrez,
Medline
from
openpyxl
import
load_workbook
Entrez.email
=
”_____@gmail.com"
handle
=
Entrez.efetch(db="pubmed",
id=["21982300"],
re"ype="medline",
retmode="text")
records
=
Medline.parse(handle)
record
=
list(records)[0]
wb
=
load_workbook('ref_cp.xlsx')
ws
=
wb.get_acSve_sheet()
ws.cell('B1').value
=
record.get("JT",
"")
ws.cell('B2').value
=
record.get("VI",
"")
ws.cell('B3').value
=
record.get("PG",
"")
ws.cell('B4').value
=
record.get("IS",
"")
ws.cell('B5').value
=
record.get("DP",
"")
ws.cell('B6').value
=
"
".join(record.get("FAU")[:3])
ws.cell('B7').value
=
record.get("TI",
"")
wb.save('openbabel.xlsx')
47. コード
from
docx
import
*
relaSonships
=
relaSonshiplist()
document
=
newdocument()
body
=
document.xpath('/w:document/w:body',
namespaces=nsprefixes)[0]
body.append(heading(u"日本酒",
1))
sake_list
=
[{"name":u"開運",
"image":"kaiun.jpg",
"desc":u"(静岡)美味い"},
{"name":u"庭のうぐいす",
"image":"uguisu.jpg",
"desc":u"(福岡)スパークリング"},
{"name":u"空木",
"image":"utugi.jpg",
"desc":u"(宮城)カップの絵柄が素敵"}]
48. コード(続き)
for
sake
in
sake_list:
body.append(heading(sake["name"],
2))
body.append(paragraph(sake["desc"]))
relaSonships,
picpara
=
picture(relaSonships,
sake["image"],
sake["name"],
pixelwidth=100,
pixelheight=100)
body.append(picpara)
coreprops
=
coreproperSes(Stle="sake",
subject="",
creator="kzfm",
keywords=[])
appprops
=
appproperSes()
conten"ypes
=
conten"ypes()
websegngs
=
websegngs()
wordrelaSonships
=
wordrelaSonships(relaSonships)
savedocx(document,
coreprops,
appprops,
conten"ypes,
websegngs,
wordrelaSonships,
'sake.docx’)
53. python-pptx + requests
prs = Presentation()
bullet_slidelayout = prs.slidelayouts[1]
c = requests.get('http://matome.naver.jp/odai/2136205629354777701').content
urls = [x.group(1) for x in re.finditer(r'<img src="(.+)".*?class="MTMItemThumb".*?/>', c)]
for i, url in enumerate(urls, 1):
img_path = "{}.jpg".format(i)
r = requests.get(url)
if r.status_code == 200:
with open(img_path, 'w') as f:
f.write(r.content)
shapes = prs.slides.add_slide(bullet_slidelayout).shapes
shapes.placeholders[0].text = '新宿のガチで美味いラーメン ({})'.format(i)
pic = shapes.add_picture(img_path, Inches(2.1), Inches(2), Px(280 * 1.427), Px(280))
prs.save('ramen.pptx')
56. それぞれ違う人間が関わっている
XX0035
XX0036
XX0049
XX0088
合成者
chemistA
chemitA
chemistB
chemistC
Structure
Molecular
weight
440
378
477
529
AcSvity
10.0
0.99
0.24
5.5
Stability
10
20
0
5
logD
3.1
2.8
2.3
2.6
Solubility
17
<1
36
42
PAMPA
15
23
22
33
hERG
5
3.3
-‐
-‐
dGSH
N.D.
N.D.
-‐
-‐
PPB
99.3
95
-‐
-‐
PK
136
48
122
147
PK
t1/2
17
3.7
5.2
5.2
61. Office Open XML
• Office Open XML (OpenXML、
OOXML) とは、XMLをベースとしたオ
フィススイート用のファイルフォーマット
である。
– http://ja.wikipedia.org/wiki/
Office_Open_XML
– ECMA標準(ECMA-376)
65. unzip prs1.pptx ; tree
.
├──
[Content_Types].xml
├──
_rels
├──
docProps
│
├──
app.xml
│
├──
core.xml
│
└──
thumbnail.jpeg
└──
ppt
├──
_rels
│
└──
presentaSon.xml.rels
├──
presProps.xml
├──
presentaSon.xml
├──
printerSegngs
│
└──
printerSegngs1.bin
├──
slideLayouts
│
├──
_rels
│
│
├──
slideLayout1.xml.rels
│
│
├──
slideLayout10.xml.rels
│
│
├──
slideLayout11.xml.rels
│
│
├──
slideLayout2.xml.rels
│
│
├──
slideLayout3.xml.rels
│
│
├──
slideLayout4.xml.rels
│
│
├──
slideLayout5.xml.rels
│
│
├──
slideLayout6.xml.rels
│
│
├──
slideLayout7.xml.rels
│
│
├──
slideLayout8.xml.rels
│
│
└──
slideLayout9.xml.rels
│
├──
slideLayout1.xml
│
├──
slideLayout10.xml
│
├──
slideLayout11.xml
│
├──
slideLayout2.xml
│
├──
slideLayout3.xml
│
├──
slideLayout4.xml
│
├──
slideLayout5.xml
│
├──
slideLayout6.xml
│
├──
slideLayout7.xml
│
├──
slideLayout8.xml
│
└──
slideLayout9.xml
├──
slideMasters
│
├──
_rels
│
│
└──
slideMaster1.xml.rels
│
└──
slideMaster1.xml
├──
slides
│
├──
_rels
│
│
└──
slide1.xml.rels
│
└──
slide1.xml
├──
tableStyles.xml
├──
theme
│
└──
theme1.xml
└──
viewProps.xml
70. コード
from
jinja2
import
Template
from
zipfile
import
ZipFile
f
=
ZipFile("template.pptx")
w
=
ZipFile("sample.pptx",
"w")
for
name
in
f.namelist():
s
=
f.read(name)
if
name
==
"ppt/slides/slide1.xml":
template
=
Template(s.decode("ux-‐8"))
s
=
template.render(Stle=u"髭もいいけど神社でしょ(^_^)v",
name="@kzfm")
s
=
s.encode("ux-‐8")
w.writestr(name,
s)
f.close()
w.close()