Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
pythonで
オフィス快適化計画
PyCon APAC 2013
kzfm
自己紹介
•  kzfm (@fmkz___)
–  blog.kzfmix.com
–  Shizuoka.py
•  とある製薬企業の研究員
•  日本酒とdrum n bass好き
•  Python歴は6年くらい
–  (その前はPer...
内容
•  Excelでの書類入力にイライラしない☆
•  社会人としてWordとどう付き合うか?
•  ルーチンワークなスライド作成からの開放
•  xlsx,docx,pptxとは何なのだろう?
どうして社会人はExcelで書
類をつくるのか?
特に総務系のヒトの
Excel好きは異常
表計算完全無視☆Excel
h"p://toge"er.com/li/101450
論破してもムダ(-_-;)
総務のヒトと仲良くするための
Python☆
表計算がしたければ
R(Rpy2)かPandasで
一年に一度くらいのExcel申請
書は耐えられるが、
毎週とか毎日は辛い
例えば
pubmed
•  医学・生物学分野の学術文献検索サービ
ス
•  医学・生物学論文検索界のグーグル
– ないと死ぬ
欲しい文献がない場合
•  図書の係のヒトに大学図書館に出向いて
もらって複写をしてもらっていた
– ちょっと前まではpdfなんて少なかった
– Excel申請書類にコピペしてお願いする
めんどくさすぎる!
複写して欲しい論文が何十報
もあるとげんなりする
優秀な人程困る…
そこでPython☆
OpenPyXL+BioPython
•  OpenPyXL
– Excel 2007 xlsx/xlsmを読み書きする
パッケージ
•  BioPython
– PythonでBioinformatics(ゲノム配列や
タンパク質立体構造を扱...
それっぽいxlsx
コード
from	
  Bio	
  import	
  Entrez,	
  Medline	
  
from	
  openpyxl	
  import	
  load_workbook	
  
Entrez.email	
  =	
  ”...
結果
あとはウェブサービスにしてブックマークレット用意しておけばOK
ここまでのまとめ
•  PyOpenXLを使うことで、既存の
Excelファイルをテンプレートとした入
力作業を自動化できる
•  時間の節約
•  無駄な作業からの開放
他にPythonでExcelを扱う
モジュール
XlsxWriter
•  https://github.com/jmcnamara/
XlsxWriter
•  PerlのExcel::Writer::XLSXのポート
•  xlsxファイルの書き込みのみサポート
•  既存のファイルを読...
xlrd/xlwt
•  xlrd
– Excelファイルを読む(read)
•  xlwt
– Excelファイルに書き出す(write)
•  読み書きできるので既存のExcelファイ
ルをテンプレートとして編集した後別の
ファイルに出力で...
社会人としてWordと
どう付き合うか?
wordで文書作成
•  報告書のようなもの
–  誰に報告したいのか?
–  報告書は再利用されるのか?
–  そもそも読まれるのか?
•  申請書類のようなもの
–  テンプレートに記入
•  原稿っぽいもの
–  章立て
–  校正、修正
wordで文書作成
•  報告書のようなもの
–  誰に報告したいのか?
–  報告書は再利用されるのか?
–  そもそも読まれるのか?
•  申請書類のようなもの
–  テンプレートに記入
•  原稿っぽいもの
–  章立て
–  校正、修正
実験レポート
•  いつ誰がどういう実験をしてどういう結果を
出したかというレポート
•  トレーサビリティ重要
–  word(doc)フォーマットでファイルを作って深
い(不快)フォルダに入れるルール
•  /部門/研究室/年度/月度/実験...
もっと楽をしたい
•  簡単に編集したい
•  レポートを簡単に検索したい
•  webブラウザでも見たい
•  で、Wikiを使うことにした
FSWiki
•  perlで書かれ
たwikiエンジ
ン
•  タグで分類
•  XML-RPCに
対応
•  pdfで出力で
きる
FSWiki
•  報告書をpdfで
出そうとしたら
wordで出せと
•  RTF::Writer
というモジュー
ルを使ってdoc
に出力するプラ
グイン作った
docのテンプレートに埋め込む
学んだこと
•  WIKIでレポートまとめていくので編集が
容易、仕事とレポートを並行して行う
TDDっぽい仕事感が得られる(リズムが
気持ちいい)
•  レポート作成の心理的障が下がった
•  軽いバージョン管理
•  必要十分な検索機能
コンテンツと見た目の分離重要
•  コンテンツはできるだけシンプルな記法
(markdown,ReST)で持っておく
– バージョン管理システムと相性がいい
– フォーマットの変換が簡単にできるように
•  epubとかmobiとか重要度上がっ...
doc(x)でコンテンツを管理しな
いというスタイルに転向した
Sphinxとかよく使う
Sphinx
•  「美しいドキュメントを簡単に生成する
ことができるドキュメンテーションツー
ル」ですね!
•  pdfとかepubに出力できて便利ですが
もちろんdocxに出力する拡張もあります
sphinx-docxbuilder
•  https://bitbucket.org/haraisao/
sphinx-docxbuilder
便利( ・ิω・ิ)
Sphinxの詳細は今日の午後のセッ
ションのスライドとかSphinx-
Users.jpのサイトをご覧下さい
Sphinxをはじめよう
h"p://www.oreilly.co.jp/books/9784873116488/
python-docx
•  word2007形式のファイルの読み書き
ができる
•  xmlを直接操作するような感じ
•  個人的にはもうちょっと高レベルなAPI
のほうが嬉しいかも
コード
from	
  docx	
  import	
  *	
  
relaSonships	
  =	
  relaSonshiplist()	
  
document	
  =	
  newdocument()	
  
body	
  ...
コード(続き)
for	
  sake	
  in	
  sake_list:	
  
	
  	
  	
  	
  body.append(heading(sake["name"],	
  2))	
  
	
  	
  	
  	
  b...
できること
•  段落
•  リスト
•  数字付きリスト
•  見出し
•  表
•  ページ分割
•  画像挿入
wordで文書作成
•  報告書のようなもの
–  誰に報告したいのか?
–  報告書は再利用されるのか?
–  そもそも読まれるのか?
•  申請書類のようなもの
–  テンプレートに記入
•  原稿っぽいもの
–  章立て
–  校正、修正
ルーチンワークなスライド作
成からの開放
例
•  Naverまとめから
画像を取り出して
pptxにする
–  【
新宿】ガチで美味い
ラーメン屋だけまとめ
た
python-pptx + requests
prs = Presentation()
bullet_slidelayout = prs.slidelayouts[1]
c = requests.get('http://matome.naver...
ガチで美味いスライド
創薬研究は様々なデータを収集
•  異なる技能をもった複数人のチームでゴールを目
指す
–  化合物合成するヒト(ケミスト)
–  効き目を実験するヒト
•  タンパク質
•  細胞
•  動物
–  体内での薬の動きをみるヒト、毒性みるヒト
...
それぞれ違う人間が関わっている
XX0035	
   XX0036	
 XX0049	
 XX0088	
  
合成者	
 chemistA	
 chemitA	
 chemistB	
 chemistC	
Structure	
 
Molec...
コピペの問題
•  時間がかかる
– まとめるだけでも労力が要る
– それぞれの研究者からレポートを集めてせっ
せとコピペ作業は忙しい時には発狂する
•  ミスる
– 数字を間違えたり、入れるべきカラムを間違
えたり
– それを避けるための無駄...
pythonで解消
•  Python-pptx+SQLAlchemyで必要
なデータを取ってきて、表にまとめるのを
自動化できる
•  コピペからの開放☆
•  資料作成時間というムダの削減
パッケージまとめ
xlsx	
• XlsxWriter	
• xlrd/xlwt	
• OpenPyXL	
docx	
• python-­‐
docx	
pptx	
• python-­‐
pptx	
これでほとんど困らない
そもそも
xlsx pptx docx
とはなにか?
Office Open XML
•  Office Open XML (OpenXML、
OOXML) とは、XMLをベースとしたオ
フィススイート用のファイルフォーマット
である。
– http://ja.wikipedia.org/wiki/
...
xmlを含むもろもろをzip圧
縮して拡張子を変えたもの
詳しく知りたいヒトは
•  仕様
– http://www.ecma-
international.org/publications/
standards/Ecma-376.htm
•  書籍
– 入門 OfficeOpen XML
例(prs1.pptx)
unzip prs1.pptx ; tree
.	
  
├──	
  [Content_Types].xml	
  
├──	
  _rels	
  
├──	
  docProps	
  
│	
  	
  	
  ├──	
  app.x...
書き換えればよろしい
$	
  zip	
  -­‐r	
  prs2.pptx	
  [Content_Types].xml	
  _rels	
  docProps	
  ppt
簡単☆
pythonでやってみる
{{title}}	
{{name}}
Torii	
  of	
  Miyajima	
  /	
  nobusue
コード
from	
  jinja2	
  import	
  Template	
  
from	
  zipfile	
  import	
  ZipFile	
  
f	
  =	
  ZipFile("template.pptx")	
 ...
髭もいいけど神社でしょ(^_^)v	
@kzfm
Torii	
  of	
  Miyajima	
  /	
  nobusue
zipfile(とlxml)モジュール
があればOK
Office文書をPythonで
生成することのメリット
•  何度もくり返すような作業を毎回手でやる
必要がなくなる
•  ドキュメント構築のプロセスを再利用で
きる
•  Gitのようなバージョン管理システムで管
理できる
MS Officeだけでなく
Pythonを使うことで
あなたのオフィスも
快適になるかも☆
ご清聴ありがとうございました
pythonでオフィス快適化計画
pythonでオフィス快適化計画
pythonでオフィス快適化計画
pythonでオフィス快適化計画
pythonでオフィス快適化計画
pythonでオフィス快適化計画
pythonでオフィス快適化計画
Nächste SlideShare
Wird geladen in …5
×

pythonでオフィス快適化計画

49.919 Aufrufe

Veröffentlicht am

  • Protect your brain from memory loss with brain pill. find out more...  https://bit.ly/2GEWG9T
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier

pythonでオフィス快適化計画

  1. 1. pythonで オフィス快適化計画 PyCon APAC 2013 kzfm
  2. 2. 自己紹介 •  kzfm (@fmkz___) –  blog.kzfmix.com –  Shizuoka.py •  とある製薬企業の研究員 •  日本酒とdrum n bass好き •  Python歴は6年くらい –  (その前はPerl) •  よく使うのはFlask, Pandas
  3. 3. 内容 •  Excelでの書類入力にイライラしない☆ •  社会人としてWordとどう付き合うか? •  ルーチンワークなスライド作成からの開放 •  xlsx,docx,pptxとは何なのだろう?
  4. 4. どうして社会人はExcelで書 類をつくるのか? 特に総務系のヒトの Excel好きは異常
  5. 5. 表計算完全無視☆Excel
  6. 6. h"p://toge"er.com/li/101450
  7. 7. 論破してもムダ(-_-;)
  8. 8. 総務のヒトと仲良くするための Python☆ 表計算がしたければ R(Rpy2)かPandasで
  9. 9. 一年に一度くらいのExcel申請 書は耐えられるが、 毎週とか毎日は辛い
  10. 10. 例えば
  11. 11. pubmed •  医学・生物学分野の学術文献検索サービ ス •  医学・生物学論文検索界のグーグル – ないと死ぬ
  12. 12. 欲しい文献がない場合 •  図書の係のヒトに大学図書館に出向いて もらって複写をしてもらっていた – ちょっと前まではpdfなんて少なかった – Excel申請書類にコピペしてお願いする
  13. 13. めんどくさすぎる!
  14. 14. 複写して欲しい論文が何十報 もあるとげんなりする 優秀な人程困る…
  15. 15. そこでPython☆
  16. 16. OpenPyXL+BioPython •  OpenPyXL – Excel 2007 xlsx/xlsmを読み書きする パッケージ •  BioPython – PythonでBioinformatics(ゲノム配列や タンパク質立体構造を扱う) – PubmedのAPI(xmlが返ってくる)にも対 応
  17. 17. それっぽいxlsx
  18. 18. コード 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')  
  19. 19. 結果 あとはウェブサービスにしてブックマークレット用意しておけばOK
  20. 20. ここまでのまとめ •  PyOpenXLを使うことで、既存の Excelファイルをテンプレートとした入 力作業を自動化できる •  時間の節約 •  無駄な作業からの開放
  21. 21. 他にPythonでExcelを扱う モジュール
  22. 22. XlsxWriter •  https://github.com/jmcnamara/ XlsxWriter •  PerlのExcel::Writer::XLSXのポート •  xlsxファイルの書き込みのみサポート •  既存のファイルを読み込んで修正して出力 みたいなことはできない
  23. 23. xlrd/xlwt •  xlrd – Excelファイルを読む(read) •  xlwt – Excelファイルに書き出す(write) •  読み書きできるので既存のExcelファイ ルをテンプレートとして編集した後別の ファイルに出力できる •  古いフォーマットにも対応
  24. 24. 社会人としてWordと どう付き合うか?
  25. 25. wordで文書作成 •  報告書のようなもの –  誰に報告したいのか? –  報告書は再利用されるのか? –  そもそも読まれるのか? •  申請書類のようなもの –  テンプレートに記入 •  原稿っぽいもの –  章立て –  校正、修正
  26. 26. wordで文書作成 •  報告書のようなもの –  誰に報告したいのか? –  報告書は再利用されるのか? –  そもそも読まれるのか? •  申請書類のようなもの –  テンプレートに記入 •  原稿っぽいもの –  章立て –  校正、修正
  27. 27. 実験レポート •  いつ誰がどういう実験をしてどういう結果を 出したかというレポート •  トレーサビリティ重要 –  word(doc)フォーマットでファイルを作って深 い(不快)フォルダに入れるルール •  /部門/研究室/年度/月度/実験者/区分/id.doc •  これは使いづらかった –  アクセスしにくい –  全体の把握をしにくい –  同僚が何やっているのか全然分からん
  28. 28. もっと楽をしたい •  簡単に編集したい •  レポートを簡単に検索したい •  webブラウザでも見たい •  で、Wikiを使うことにした
  29. 29. FSWiki •  perlで書かれ たwikiエンジ ン •  タグで分類 •  XML-RPCに 対応 •  pdfで出力で きる
  30. 30. FSWiki •  報告書をpdfで 出そうとしたら wordで出せと •  RTF::Writer というモジュー ルを使ってdoc に出力するプラ グイン作った
  31. 31. docのテンプレートに埋め込む
  32. 32. 学んだこと •  WIKIでレポートまとめていくので編集が 容易、仕事とレポートを並行して行う TDDっぽい仕事感が得られる(リズムが 気持ちいい) •  レポート作成の心理的障が下がった •  軽いバージョン管理 •  必要十分な検索機能
  33. 33. コンテンツと見た目の分離重要 •  コンテンツはできるだけシンプルな記法 (markdown,ReST)で持っておく – バージョン管理システムと相性がいい – フォーマットの変換が簡単にできるように •  epubとかmobiとか重要度上がってるし •  docにするとコンテンツの再利用性が下 がる(doc->docならいいけど) – word立ち上げる時間もバカにならない – ファイルの管理コストも(SharePoint?)
  34. 34. doc(x)でコンテンツを管理しな いというスタイルに転向した Sphinxとかよく使う
  35. 35. Sphinx •  「美しいドキュメントを簡単に生成する ことができるドキュメンテーションツー ル」ですね! •  pdfとかepubに出力できて便利ですが もちろんdocxに出力する拡張もあります
  36. 36. sphinx-docxbuilder •  https://bitbucket.org/haraisao/ sphinx-docxbuilder
  37. 37. 便利( ・ิω・ิ) Sphinxの詳細は今日の午後のセッ ションのスライドとかSphinx- Users.jpのサイトをご覧下さい
  38. 38. Sphinxをはじめよう h"p://www.oreilly.co.jp/books/9784873116488/
  39. 39. python-docx •  word2007形式のファイルの読み書き ができる •  xmlを直接操作するような感じ •  個人的にはもうちょっと高レベルなAPI のほうが嬉しいかも
  40. 40. コード 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"(宮城)カップの絵柄が素敵"}]  
  41. 41. コード(続き) 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’)  
  42. 42. できること •  段落 •  リスト •  数字付きリスト •  見出し •  表 •  ページ分割 •  画像挿入
  43. 43. wordで文書作成 •  報告書のようなもの –  誰に報告したいのか? –  報告書は再利用されるのか? –  そもそも読まれるのか? •  申請書類のようなもの –  テンプレートに記入 •  原稿っぽいもの –  章立て –  校正、修正
  44. 44. ルーチンワークなスライド作 成からの開放
  45. 45. 例 •  Naverまとめから 画像を取り出して pptxにする –  【 新宿】ガチで美味い ラーメン屋だけまとめ た
  46. 46. 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')
  47. 47. ガチで美味いスライド
  48. 48. 創薬研究は様々なデータを収集 •  異なる技能をもった複数人のチームでゴールを目 指す –  化合物合成するヒト(ケミスト) –  効き目を実験するヒト •  タンパク質 •  細胞 •  動物 –  体内での薬の動きをみるヒト、毒性みるヒト •  細胞 •  動物 –  予測モデル作ったりシミュレーションしたりするヒト •  コンピュテーショナルケミスト –  データサイエンティスト •  バイオインフォマティクス •  ケモインフォマティクス
  49. 49. それぞれ違う人間が関わっている 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
  50. 50. コピペの問題 •  時間がかかる – まとめるだけでも労力が要る – それぞれの研究者からレポートを集めてせっ せとコピペ作業は忙しい時には発狂する •  ミスる – 数字を間違えたり、入れるべきカラムを間違 えたり – それを避けるための無駄なダブルチェック
  51. 51. pythonで解消 •  Python-pptx+SQLAlchemyで必要 なデータを取ってきて、表にまとめるのを 自動化できる •  コピペからの開放☆ •  資料作成時間というムダの削減
  52. 52. パッケージまとめ xlsx • XlsxWriter • xlrd/xlwt • OpenPyXL docx • python-­‐ docx pptx • python-­‐ pptx これでほとんど困らない
  53. 53. そもそも xlsx pptx docx とはなにか?
  54. 54. Office Open XML •  Office Open XML (OpenXML、 OOXML) とは、XMLをベースとしたオ フィススイート用のファイルフォーマット である。 – http://ja.wikipedia.org/wiki/ Office_Open_XML – ECMA標準(ECMA-376)
  55. 55. xmlを含むもろもろをzip圧 縮して拡張子を変えたもの
  56. 56. 詳しく知りたいヒトは •  仕様 – http://www.ecma- international.org/publications/ standards/Ecma-376.htm •  書籍 – 入門 OfficeOpen XML
  57. 57. 例(prs1.pptx)
  58. 58. 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  
  59. 59. 書き換えればよろしい $  zip  -­‐r  prs2.pptx  [Content_Types].xml  _rels  docProps  ppt
  60. 60. 簡単☆
  61. 61. pythonでやってみる
  62. 62. {{title}} {{name}} Torii  of  Miyajima  /  nobusue
  63. 63. コード 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()  
  64. 64. 髭もいいけど神社でしょ(^_^)v @kzfm Torii  of  Miyajima  /  nobusue
  65. 65. zipfile(とlxml)モジュール があればOK
  66. 66. Office文書をPythonで 生成することのメリット •  何度もくり返すような作業を毎回手でやる 必要がなくなる •  ドキュメント構築のプロセスを再利用で きる •  Gitのようなバージョン管理システムで管 理できる
  67. 67. MS Officeだけでなく Pythonを使うことで あなたのオフィスも 快適になるかも☆
  68. 68. ご清聴ありがとうございました

×