SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

ISPの向こう側、どうなってますか
ISPの向こう側、どうなってますかISPの向こう側、どうなってますか
ISPの向こう側、どうなってますかAkira Nakagawa
 
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪Kunihiro TANAKA
 
Msを16倍出し抜くwpf開発2回目
Msを16倍出し抜くwpf開発2回目Msを16倍出し抜くwpf開発2回目
Msを16倍出し抜くwpf開発2回目cct-inc
 
Pythonでパケット解析
Pythonでパケット解析Pythonでパケット解析
Pythonでパケット解析euphoricwavism
 
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法kazkiti
 
本当は楽しいインターネット
本当は楽しいインターネット本当は楽しいインターネット
本当は楽しいインターネットYuya Rin
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線Motonori Shindo
 
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな!  PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとはコンテナを止めるな!  PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとはksk_ha
 
マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法Takuya ASADA
 
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用日本マイクロソフト株式会社
 
Linux女子部 iptables復習編
Linux女子部 iptables復習編Linux女子部 iptables復習編
Linux女子部 iptables復習編Etsuji Nakai
 
IETFの道しるべ-IETFの歩き方-20230124.pdf
IETFの道しるべ-IETFの歩き方-20230124.pdfIETFの道しるべ-IETFの歩き方-20230124.pdf
IETFの道しるべ-IETFの歩き方-20230124.pdfShoichi Sakane
 
IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向Yuya Rin
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説murachue
 
閉域網接続の技術入門
閉域網接続の技術入門閉域網接続の技術入門
閉域網接続の技術入門Masayuki Kobayashi
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
Redmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみたRedmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみたKohei Nakamura
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Masahito Zembutsu
 
Topology Managerについて / Kubernetes Meetup Tokyo 50
Topology Managerについて / Kubernetes Meetup Tokyo 50Topology Managerについて / Kubernetes Meetup Tokyo 50
Topology Managerについて / Kubernetes Meetup Tokyo 50Preferred Networks
 

What's hot (20)

ISPの向こう側、どうなってますか
ISPの向こう側、どうなってますかISPの向こう側、どうなってますか
ISPの向こう側、どうなってますか
 
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
 
Msを16倍出し抜くwpf開発2回目
Msを16倍出し抜くwpf開発2回目Msを16倍出し抜くwpf開発2回目
Msを16倍出し抜くwpf開発2回目
 
Pythonでパケット解析
Pythonでパケット解析Pythonでパケット解析
Pythonでパケット解析
 
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法
 
本当は楽しいインターネット
本当は楽しいインターネット本当は楽しいインターネット
本当は楽しいインターネット
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
 
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな!  PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとはコンテナを止めるな!  PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
 
マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法
 
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
 
Linux女子部 iptables復習編
Linux女子部 iptables復習編Linux女子部 iptables復習編
Linux女子部 iptables復習編
 
IETFの道しるべ-IETFの歩き方-20230124.pdf
IETFの道しるべ-IETFの歩き方-20230124.pdfIETFの道しるべ-IETFの歩き方-20230124.pdf
IETFの道しるべ-IETFの歩き方-20230124.pdf
 
IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
閉域網接続の技術入門
閉域網接続の技術入門閉域網接続の技術入門
閉域網接続の技術入門
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
Redmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみたRedmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみた
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
 
Topology Managerについて / Kubernetes Meetup Tokyo 50
Topology Managerについて / Kubernetes Meetup Tokyo 50Topology Managerについて / Kubernetes Meetup Tokyo 50
Topology Managerについて / Kubernetes Meetup Tokyo 50
 

Similar to 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
 

Similar to 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の高速化
 

More from 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
 

More from 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によるテキスト整形ユーティリティ