Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
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でオフィス快適化計画
Próxima SlideShare
Cargando en…5
×

pythonでオフィス快適化計画

49.957 visualizaciones

Publicado el

  • Protect your brain from memory loss with brain pill. find out more...  https://bit.ly/2GEWG9T
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí

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. ご清聴ありがとうございました

×