SlideShare une entreprise Scribd logo
1  sur  32
tse Text Stream Editor
Pythonによる
テキスト整形ユーティリティ
2015/10/10 PyCon JP 2015
Atsuo Ishimoto
自己紹介
2
いしもと
石本 敦夫
あつお
python.jp ドメインの管理者
@atsuoishimoto
著書
Pythonライブラリ厳選レシピ
Python文法詳解
パーフェクトPython
Unixのテキスト処理といえば
3
sed, awk, perlなどのワンライナーが定番
Pythonでもワンライナーを書きたい
使い慣れたモジュール群を手軽に活用したい
いちいちスクリプトファイルを作成したくない
シェルのヒストリーから呼び出したい
Pythonはワンライナー向き?
4
向きません
インデントと改行が必須
sys, reなどのimportなど、タイプ量が多い
ワンライナー用のコマンドラインオプションがない
 (Python2) Unicode(Encode|Decode)Error
$ python -c 'print u"あ"'|less 等。。。
tse Text Stream Editor
5
Pythonによるテキスト整形ツール
Pythonスクリプトをコマンドラインで指定
一般的なモジュール(sys, reなど)の自動イン
ポート
ファイルを読み込み、スクリプトを実行
入出力エンコーディングの指定
インストール方法
6
pip install tse
Python2.7以降
Python3.3以降
tseの動作
7
1. テキストファイルを一行ずつ読み込み、
2. 行に一致するパターンがあれば、
3. 行を変数に代入し、
4.対応するアクションを実行する
$ tse -s '^d+' 'print(L.lower())' 
-s '^w+' 'print(L.upper())'
パターンとアクション
8
パターン 入力行を検索する、正規表現式
アクション パターンの検索が成功した時に実
行するスクリプト
パターン アクション-sオプションで指定
サンプル
9
'spam' を含む行を、小文字に変換して出力
tse -s "spam" "print(L.lower())" < s.txt
サンプル
10
行ごとに、すべての数字列の和を出力
tse -s ".*" "print(sum(int(s) for s in
re.findall(r"d+", L)))"" < s.txt
パターン
11
例
• spam|ham 'spam' または 'ham' を含む行
• ^d+ 数字列で始まる行
reモジュールを利用
入力テキストを検索する正規表現式
アクション
12
例
• print('hello') 'hello'と出力
• print(L.upper()) 行を大文字に変換して出力
パターンがヒットした行で実行するスクリプト
複数行のアクション
13
例
$tse -s '^w' 'if L:' ' print(L)' < spam.txt
パターンには複数のアクションを指定できる。
2番目以降のアクションは、先頭のアクション
の次の行として実行される。
if L:
print(a)
インデント
14
$ tse -s '.*' 'if len(L)>5:{{print(1)}}'
{{ と }} でインデントするブロックを指定する
if len(L)>5:
print(1)
文字列・コメント中の"{{}}" はインデントとして扱わない
例) 'print("{{spam}}{{ham}}")
入力ファイルの指定
15
-s オプションに続けてファイル名を指定するとき
は、オプションとファイル名を -- で区切る
ファイル名が - のときは、標準入力から読み込む
$tse -s '^d' 'print(S)' -- a.txt b.txt
$tse -s '^d' 'print(L)' -- -
変数
16
処理中のテキストは、変数に格納される
変数名 内容
L 現在処理中のテキスト行全体
L0 テキスト行を空白で区切った文字列の
配列
L1, L2,... テキスト行を空白で区切った文字列の
1番目、2番目、…
N L0の長さ
マッチ文字列
17
正規表現にマッチした文字列も変数に格納
変数名 内容
S 正規表現にマッチしたグループの配列
S0 正規表現にマッチした部分文字列全体
S1, S2,... ()で囲んだグループの部分文字列
グループ名 '(?P<グループ名>)' で指定したグルー
プの部分文字列
M ReモジュールのMatchオブジェクト
変数のサンプル
18
$ echo 'ab cd ef'| tse -s '.*' 'print(L3, L2, L1)'
ef cd ab
空白区切りの単語を出力
$ echo '123abc' 
| tse -s '(?P<num>d+)(.*)' 'print(num, S2)'
123 abc
パターンの部分文字列
変数のサンプル
19
$ls -l|tse -s '' 'if N>2 and int(L5)>=1024:print(L9)'
サイズ>=1024のファイル名を出力
$ ls -l
total 168
-rw-r--r-- 1 ishimoto staff 698 10 6 12:58 HISTORY
-rw-r--r-- 1 ishimoto staff 1064 10 6 12:39 LICENSE
-rw-r--r-- 1 ishimoto staff 35 10 6 12:39 MANIFEST.in
1 2 3 4 5 6 7 8 9
その他の変数
20
変数名 内容
FILENAME 処理中のファイル名。標準入力の場合
は '<stdin>'
LINENO 処理中の行番号(1, 2, 3,…)
省略時のパターン
21
$ tse -s '' 'print(L)'
パターンが空文字列の場合、'.*' と同じ
$ tse -s '.*' 'print(L)'
省略時のアクション
22
$ tse -s '.*' ''
アクションが空文字列の場合、'print(L)' と同じ
$ tse -s '.*' 'print(L)'
beginアクションとendアクション
23
--begin オプション 起動直後に実行するアクション
--end オプション
ファイル読み込み終了後に
実行するアクション
$ tse --begin 's=0' 
--end 'print(s)' 
-s '.*' 's+=len(L)'
*.txt
例) *.txt ファイル全文字数を出力する
インポート済みモジュール
24
$ tse -s '.*' 'os.mkdir(L)'
sys, re, os, os.path はインポート不要
os.path は、from os import path 形式
$ tse -s '.*' 'print(path.splitext(L)[1])'
モジュールのインポート
25
--module/-m オプション
実行前にモジュールをインポートする
例) $tse -m math --begin 'print(math.sqrt(2))'
--module-star/-ms オプション
from モジュール名 import * 形式でインポートする
例) $tse -ms math --begin 'print(sqrt(2))'
エンコーディング指定
26
--input-encoding/-ie オプション
入力ファイルのエンコーディングを指定する
例) $tse -ie cp932 -s '' ''
--output-encoding/-oe オプション
出力ファイルのエンコーディングを指定する
例) $tse -ie cp932 -s '' ''
--inplace オプション
27
入力ファイルを、出力で上書きする。
$tse --inplace .bak -s '' 'print(L.lower())' -- spam.txt
元のファイルは、指定した拡張子を付加した
ファイルに保存
--script-file/-f オプション
28
起動前に実行するスクリプトファイルを指定する。
$tse -f scr.py -s '' '' < spam.txt
デフォルトでは、~/.tserc ファイルが存在すれ
ば実行する。
拡張子ごとにファイルサイズ集計
29
$ find . -type f | 
tse -ms collections -b 'c=defaultdict(int)' 
-s '' 'c[path.splitext(L)[1]]+=path.getsize(L)' 
-e 'for r in c.items():print(r)'
ipアドレスからホスト名逆引き
30
$ cat log | tse -ms socket -s '' 
'try:print(gethostbyaddr(L1)[0], L1)' 
'except:print("unknown", L1)'
HTMLからa要素を抽出
31
$ curl www.python.jp | tse -ms 'bs4'
-b 'for a in BeautifulSoup(sys.stdin.read(),
"lxml").find_all("a"):{{url=a.get("href", ""){{}}if
url.startswith("http"):print(a["href"])'
ご清聴ありがとうございました
32

Contenu connexe

Tendances

PPAPを何とかしたいがPHSも何とかしたい
PPAPを何とかしたいがPHSも何とかしたいPPAPを何とかしたいがPHSも何とかしたい
PPAPを何とかしたいがPHSも何とかしたいUEHARA, Tetsutaro
 
Micrometerでメトリクスを収集してAmazon CloudWatchで可視化
Micrometerでメトリクスを収集してAmazon CloudWatchで可視化Micrometerでメトリクスを収集してAmazon CloudWatchで可視化
Micrometerでメトリクスを収集してAmazon CloudWatchで可視化Ryosuke Uchitate
 
【de:code 2020】 レガシーシステムをデジタルの世界へ! Power Automate UI フロー入門
【de:code 2020】 レガシーシステムをデジタルの世界へ! Power Automate UI フロー入門【de:code 2020】 レガシーシステムをデジタルの世界へ! Power Automate UI フロー入門
【de:code 2020】 レガシーシステムをデジタルの世界へ! Power Automate UI フロー入門日本マイクロソフト株式会社
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)Yoshitaka Kawashima
 
Rのオブジェクト
RのオブジェクトRのオブジェクト
RのオブジェクトItoshi Nikaido
 
SQLアンチパターン - ナイーブツリー
SQLアンチパターン - ナイーブツリーSQLアンチパターン - ナイーブツリー
SQLアンチパターン - ナイーブツリーke-m kamekoopa
 
Git 入門ちょい手前
Git 入門ちょい手前Git 入門ちょい手前
Git 入門ちょい手前Yuichi Goto
 
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けようDjango ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けようTakayuki Shimizukawa
 
ゼロ幅スペースという悪夢
ゼロ幅スペースという悪夢ゼロ幅スペースという悪夢
ゼロ幅スペースという悪夢swamp Sawa
 
リーンなコードを書こう:実践的なオブジェクト指向設計
リーンなコードを書こう:実践的なオブジェクト指向設計リーンなコードを書こう:実践的なオブジェクト指向設計
リーンなコードを書こう:実践的なオブジェクト指向設計増田 亨
 
線形代数の視覚的理解 V1.1-Gストラング勉強会
線形代数の視覚的理解 V1.1-Gストラング勉強会線形代数の視覚的理解 V1.1-Gストラング勉強会
線形代数の視覚的理解 V1.1-Gストラング勉強会Kenji Hiranabe
 
型安全性入門
型安全性入門型安全性入門
型安全性入門Akinori Abe
 
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門masayoshi takahashi
 
Hyper vを理解する
Hyper vを理解するHyper vを理解する
Hyper vを理解するNaoki Abe
 
GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話mdome
 
ISO/IEC/IEEE 29119 Software Testing 勉強会第3回 テストドキュメント
ISO/IEC/IEEE 29119 Software Testing 勉強会第3回 テストドキュメントISO/IEC/IEEE 29119 Software Testing 勉強会第3回 テストドキュメント
ISO/IEC/IEEE 29119 Software Testing 勉強会第3回 テストドキュメント崇 山﨑
 
SharePoint モダン ポータル 徹底解説 !
SharePoint モダン ポータル 徹底解説 !SharePoint モダン ポータル 徹底解説 !
SharePoint モダン ポータル 徹底解説 !Ai Hirano
 
DeNAのインフラ戦略 〜クラウドジャーニーの舞台裏〜 [DeNA TechCon 2019]
DeNAのインフラ戦略 〜クラウドジャーニーの舞台裏〜 [DeNA TechCon 2019]DeNAのインフラ戦略 〜クラウドジャーニーの舞台裏〜 [DeNA TechCon 2019]
DeNAのインフラ戦略 〜クラウドジャーニーの舞台裏〜 [DeNA TechCon 2019]DeNA
 
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化シスコシステムズ合同会社
 
演習II.第1章 ベイズ推論の考え方 Part 2.スライド
演習II.第1章 ベイズ推論の考え方 Part 2.スライド演習II.第1章 ベイズ推論の考え方 Part 2.スライド
演習II.第1章 ベイズ推論の考え方 Part 2.スライドWataru Shito
 

Tendances (20)

PPAPを何とかしたいがPHSも何とかしたい
PPAPを何とかしたいがPHSも何とかしたいPPAPを何とかしたいがPHSも何とかしたい
PPAPを何とかしたいがPHSも何とかしたい
 
Micrometerでメトリクスを収集してAmazon CloudWatchで可視化
Micrometerでメトリクスを収集してAmazon CloudWatchで可視化Micrometerでメトリクスを収集してAmazon CloudWatchで可視化
Micrometerでメトリクスを収集してAmazon CloudWatchで可視化
 
【de:code 2020】 レガシーシステムをデジタルの世界へ! Power Automate UI フロー入門
【de:code 2020】 レガシーシステムをデジタルの世界へ! Power Automate UI フロー入門【de:code 2020】 レガシーシステムをデジタルの世界へ! Power Automate UI フロー入門
【de:code 2020】 レガシーシステムをデジタルの世界へ! Power Automate UI フロー入門
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
 
Rのオブジェクト
RのオブジェクトRのオブジェクト
Rのオブジェクト
 
SQLアンチパターン - ナイーブツリー
SQLアンチパターン - ナイーブツリーSQLアンチパターン - ナイーブツリー
SQLアンチパターン - ナイーブツリー
 
Git 入門ちょい手前
Git 入門ちょい手前Git 入門ちょい手前
Git 入門ちょい手前
 
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けようDjango ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
 
ゼロ幅スペースという悪夢
ゼロ幅スペースという悪夢ゼロ幅スペースという悪夢
ゼロ幅スペースという悪夢
 
リーンなコードを書こう:実践的なオブジェクト指向設計
リーンなコードを書こう:実践的なオブジェクト指向設計リーンなコードを書こう:実践的なオブジェクト指向設計
リーンなコードを書こう:実践的なオブジェクト指向設計
 
線形代数の視覚的理解 V1.1-Gストラング勉強会
線形代数の視覚的理解 V1.1-Gストラング勉強会線形代数の視覚的理解 V1.1-Gストラング勉強会
線形代数の視覚的理解 V1.1-Gストラング勉強会
 
型安全性入門
型安全性入門型安全性入門
型安全性入門
 
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
 
Hyper vを理解する
Hyper vを理解するHyper vを理解する
Hyper vを理解する
 
GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話
 
ISO/IEC/IEEE 29119 Software Testing 勉強会第3回 テストドキュメント
ISO/IEC/IEEE 29119 Software Testing 勉強会第3回 テストドキュメントISO/IEC/IEEE 29119 Software Testing 勉強会第3回 テストドキュメント
ISO/IEC/IEEE 29119 Software Testing 勉強会第3回 テストドキュメント
 
SharePoint モダン ポータル 徹底解説 !
SharePoint モダン ポータル 徹底解説 !SharePoint モダン ポータル 徹底解説 !
SharePoint モダン ポータル 徹底解説 !
 
DeNAのインフラ戦略 〜クラウドジャーニーの舞台裏〜 [DeNA TechCon 2019]
DeNAのインフラ戦略 〜クラウドジャーニーの舞台裏〜 [DeNA TechCon 2019]DeNAのインフラ戦略 〜クラウドジャーニーの舞台裏〜 [DeNA TechCon 2019]
DeNAのインフラ戦略 〜クラウドジャーニーの舞台裏〜 [DeNA TechCon 2019]
 
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
 
演習II.第1章 ベイズ推論の考え方 Part 2.スライド
演習II.第1章 ベイズ推論の考え方 Part 2.スライド演習II.第1章 ベイズ推論の考え方 Part 2.スライド
演習II.第1章 ベイズ推論の考え方 Part 2.スライド
 

Similaire à tse - Pythonによるテキスト整形ユーティリティ

Python standard 2022 Spring
Python standard 2022 SpringPython standard 2022 Spring
Python standard 2022 Springanyakichi
 
ひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指すひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指すAromaBlack
 
研究生のためのC++ no.2
研究生のためのC++ no.2研究生のためのC++ no.2
研究生のためのC++ no.2Tomohiro Namba
 
きつねさんと学ぶ Lambda式&StreamAPIハンズオン[関ジャバ2015/7/11] #kanjava
きつねさんと学ぶ Lambda式&StreamAPIハンズオン[関ジャバ2015/7/11] #kanjavaきつねさんと学ぶ Lambda式&StreamAPIハンズオン[関ジャバ2015/7/11] #kanjava
きつねさんと学ぶ Lambda式&StreamAPIハンズオン[関ジャバ2015/7/11] #kanjavabitter_fox
 
2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめMakiko Konoshima
 
Introduction to cython
Introduction to cythonIntroduction to cython
Introduction to cythonAtsuo Ishimoto
 
2017/12/21 虎の穴 Python勉強会
2017/12/21 虎の穴 Python勉強会2017/12/21 虎の穴 Python勉強会
2017/12/21 虎の穴 Python勉強会虎の穴 開発室
 
Javaセキュアコーディングセミナー東京第3回講義
Javaセキュアコーディングセミナー東京第3回講義Javaセキュアコーディングセミナー東京第3回講義
Javaセキュアコーディングセミナー東京第3回講義JPCERT Coordination Center
 
PostgreSQLとpython
PostgreSQLとpythonPostgreSQLとpython
PostgreSQLとpythonSoudai Sone
 
Write good parser in perl
Write good parser in perlWrite good parser in perl
Write good parser in perlJiro Nishiguchi
 
関数型都市忘年会『はじめての函数型プログラミング』
関数型都市忘年会『はじめての函数型プログラミング』関数型都市忘年会『はじめての函数型プログラミング』
関数型都市忘年会『はじめての函数型プログラミング』Kenta USAMI
 
Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3Ransui Iso
 
ふつうのLinuxプログラミング
ふつうのLinuxプログラミングふつうのLinuxプログラミング
ふつうのLinuxプログラミングShuhei KONDO
 
PyCon2020 Pythonで競プロをしよう! 〜入門者が知っておくべき高速化Tips〜
PyCon2020 Pythonで競プロをしよう! 〜入門者が知っておくべき高速化Tips〜PyCon2020 Pythonで競プロをしよう! 〜入門者が知っておくべき高速化Tips〜
PyCon2020 Pythonで競プロをしよう! 〜入門者が知っておくべき高速化Tips〜Kosaku Ono
 

Similaire à tse - Pythonによるテキスト整形ユーティリティ (20)

Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
 
Python standard 2022 Spring
Python standard 2022 SpringPython standard 2022 Spring
Python standard 2022 Spring
 
ALPSチュートリアル(4) Python入門
ALPSチュートリアル(4) Python入門ALPSチュートリアル(4) Python入門
ALPSチュートリアル(4) Python入門
 
Tokyor23 doradora09
Tokyor23 doradora09Tokyor23 doradora09
Tokyor23 doradora09
 
ひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指すひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指す
 
研究生のためのC++ no.2
研究生のためのC++ no.2研究生のためのC++ no.2
研究生のためのC++ no.2
 
きつねさんと学ぶ Lambda式&StreamAPIハンズオン[関ジャバ2015/7/11] #kanjava
きつねさんと学ぶ Lambda式&StreamAPIハンズオン[関ジャバ2015/7/11] #kanjavaきつねさんと学ぶ Lambda式&StreamAPIハンズオン[関ジャバ2015/7/11] #kanjava
きつねさんと学ぶ Lambda式&StreamAPIハンズオン[関ジャバ2015/7/11] #kanjava
 
Unix
UnixUnix
Unix
 
2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ
 
Introduction to cython
Introduction to cythonIntroduction to cython
Introduction to cython
 
2017/12/21 虎の穴 Python勉強会
2017/12/21 虎の穴 Python勉強会2017/12/21 虎の穴 Python勉強会
2017/12/21 虎の穴 Python勉強会
 
Javaセキュアコーディングセミナー東京第3回講義
Javaセキュアコーディングセミナー東京第3回講義Javaセキュアコーディングセミナー東京第3回講義
Javaセキュアコーディングセミナー東京第3回講義
 
PostgreSQLとpython
PostgreSQLとpythonPostgreSQLとpython
PostgreSQLとpython
 
Write good parser in perl
Write good parser in perlWrite good parser in perl
Write good parser in perl
 
関数型都市忘年会『はじめての函数型プログラミング』
関数型都市忘年会『はじめての函数型プログラミング』関数型都市忘年会『はじめての函数型プログラミング』
関数型都市忘年会『はじめての函数型プログラミング』
 
Tfug kansai vol2
Tfug kansai vol2Tfug kansai vol2
Tfug kansai vol2
 
Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3
 
ふつうのLinuxプログラミング
ふつうのLinuxプログラミングふつうのLinuxプログラミング
ふつうのLinuxプログラミング
 
PyCon2020 Pythonで競プロをしよう! 〜入門者が知っておくべき高速化Tips〜
PyCon2020 Pythonで競プロをしよう! 〜入門者が知っておくべき高速化Tips〜PyCon2020 Pythonで競プロをしよう! 〜入門者が知っておくべき高速化Tips〜
PyCon2020 Pythonで競プロをしよう! 〜入門者が知っておくべき高速化Tips〜
 
Rの高速化
Rの高速化Rの高速化
Rの高速化
 

Plus de Atsuo Ishimoto

NumPyの歴史とPythonの並行処理【PyData.tokyo One-day Conference 2018】
NumPyの歴史とPythonの並行処理【PyData.tokyo One-day Conference 2018】NumPyの歴史とPythonの並行処理【PyData.tokyo One-day Conference 2018】
NumPyの歴史とPythonの並行処理【PyData.tokyo One-day Conference 2018】Atsuo Ishimoto
 
行列演算とPythonの言語デザイン
行列演算とPythonの言語デザイン行列演算とPythonの言語デザイン
行列演算とPythonの言語デザインAtsuo Ishimoto
 
Python 3.6 リリースパーティー 発表資料
Python 3.6 リリースパーティー 発表資料Python 3.6 リリースパーティー 発表資料
Python 3.6 リリースパーティー 発表資料Atsuo Ishimoto
 
Pelicanによる www.python.jpの構築
Pelicanによる www.python.jpの構築Pelicanによる www.python.jpの構築
Pelicanによる www.python.jpの構築Atsuo Ishimoto
 
PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツール
PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツールPyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツール
PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツールAtsuo Ishimoto
 
Python3と向かい合ってみる
Python3と向かい合ってみるPython3と向かい合ってみる
Python3と向かい合ってみるAtsuo Ishimoto
 
Pythonのシグナル処理
Pythonのシグナル処理Pythonのシグナル処理
Pythonのシグナル処理Atsuo Ishimoto
 
Pythonのガベージコレクション
PythonのガベージコレクションPythonのガベージコレクション
PythonのガベージコレクションAtsuo Ishimoto
 
Slide at PyCon mini JP on 2011/1/29
Slide at PyCon mini JP on 2011/1/29Slide at PyCon mini JP on 2011/1/29
Slide at PyCon mini JP on 2011/1/29Atsuo Ishimoto
 
String representation in py3k
String representation in py3kString representation in py3k
String representation in py3kAtsuo Ishimoto
 

Plus de Atsuo Ishimoto (13)

Pythonの紹介
Pythonの紹介Pythonの紹介
Pythonの紹介
 
NumPyの歴史とPythonの並行処理【PyData.tokyo One-day Conference 2018】
NumPyの歴史とPythonの並行処理【PyData.tokyo One-day Conference 2018】NumPyの歴史とPythonの並行処理【PyData.tokyo One-day Conference 2018】
NumPyの歴史とPythonの並行処理【PyData.tokyo One-day Conference 2018】
 
行列演算とPythonの言語デザイン
行列演算とPythonの言語デザイン行列演算とPythonの言語デザイン
行列演算とPythonの言語デザイン
 
Django pgroonga
Django pgroongaDjango pgroonga
Django pgroonga
 
Python 3.6 リリースパーティー 発表資料
Python 3.6 リリースパーティー 発表資料Python 3.6 リリースパーティー 発表資料
Python 3.6 リリースパーティー 発表資料
 
python.jpの使い方
python.jpの使い方python.jpの使い方
python.jpの使い方
 
Pelicanによる www.python.jpの構築
Pelicanによる www.python.jpの構築Pelicanによる www.python.jpの構築
Pelicanによる www.python.jpの構築
 
PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツール
PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツールPyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツール
PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツール
 
Python3と向かい合ってみる
Python3と向かい合ってみるPython3と向かい合ってみる
Python3と向かい合ってみる
 
Pythonのシグナル処理
Pythonのシグナル処理Pythonのシグナル処理
Pythonのシグナル処理
 
Pythonのガベージコレクション
PythonのガベージコレクションPythonのガベージコレクション
Pythonのガベージコレクション
 
Slide at PyCon mini JP on 2011/1/29
Slide at PyCon mini JP on 2011/1/29Slide at PyCon mini JP on 2011/1/29
Slide at PyCon mini JP on 2011/1/29
 
String representation in py3k
String representation in py3kString representation in py3k
String representation in py3k
 

tse - Pythonによるテキスト整形ユーティリティ