Mojaveにした。
iOS12にもした。
Mojaveにした。
iOS12にもした。
しらなかったのでメモ。
Pythonで配列をprintするときに[]
とか,
とかがじゃまだなーとおもっていたらそれを解決するほうほうがあった。
printする際にアスタリスクをつけてあげるだけでOK
たとえばこんなかんじの配列があったとする
wawawa_array = [1,2,3]
ふつうにprintするとこんなかんじになってしまうけれど
>>> print(wawawa_array) [1, 2, 3]
アスタリスクをつけてあげるとこんなかんじで中身だけ出力してくれる。
>>> print(*wawawa_array) 1 2 3
タプルでもおなじことができるよ。
Pythonを利用してgrepみたいなことをしてみたいと思います。
だいたいこんなかんじ。
words_arrayのそれぞれの要素の中にwaという文字が存在するかどうかを確認したい。
grep_word = 'wa' words_array = ['maeda','tanaka','wasabi'] for i in range(0,len(words_array)): if words_array[i].find(grep_word) >= 0: print(words_array[i])
それらは文字列全部.find(さがしたい文字列)
で得ることができます。
うごかしてみるとこんなかんじになる。
$ ./grep.py wasabi
やっぱりgrepってべんり
エキスパートPythonプログラミング 改訂2版 (アスキードワンゴ)
よこはまで肉寿司たべた。
おいしかった。
深夜特急全部読んだ。
やっぱ香港・マカオがおもしろかったんだなーとおもった。
来月あたりいってくる。
プリンシプルオブプログラミング読んだ。
もう3年目じゃないけれど。
よかった。
プリンシプル オブ プログラミング3年目までに身につけたい一生役立つ101の原理原則
Pythonを利用してテキストファイルの内容を編集して見たいと思います。
たとえばこんなかんじのテキストファイルがあるとする。
$ cat ~/Downloads/sasasa.txt AAA BBB CCC DDD EEE
こんなかんじのスクリプトで編集することができる。
ファイルを追記形式(openの第二引数に'a')でopenしたあとに.write(編集したい内容)
を入力している。
import os from pathlib import Path home_directory = str(Path.home()) file_path = home_directory + '/Downloads/sasasa.txt' text_file = open(file_path,'a') text_file.write('wawawa\n') text_file.close()
テキストファイルが編集されていることがわかります。
$ cat ~/Downloads/sasasa.txt AAA BBB CCC DDD EEE wawawa
ファイルを編集形式(openの第二引数に'w')でopenした場合は既存の内容はすべて書き換えられてしまいます。
text_file = open(file_path,'w') text_file.write('wawawa\n')
$ cat ~/Downloads/sasasa.txt wawawa
リダイレクトの>
と>>
みたいなもんです。
openするファイルが存在しない場合は追記モードでも編集モードでも新たなファイルが生成されます。
そこもリダイレクトと一緒です。
エキスパートPythonプログラミング 改訂2版 (アスキードワンゴ)
Pythonを利用してテキストファイルの内容を1行ずつ読み込んで処理してみたいと思います。
こんかなんじのテキストファイルがあるとする。
$ cat ~/Downloads/sasasa.txt AAA BBB CCC DDD EEE
ファイルをopenしたあとにreadlines()
をつかうことでテキストファイルの内容を改行区切りでリストに格納することができます。
import os from pathlib import Path home_directory = str(Path.home()) file_path = home_directory + '/Downloads/sasasa.txt' text_file = open(file_path) content = text_file.readlines() print(content)
実行してみるとこんなかんじ
$ ./fileopen.py ['AAA\n', 'BBB\n', 'CCC\n', 'DDD\n', 'EEE\n']
それをループでまわしてあげればいいかんじにいろいろできるはず。
for i in content: print('aaa'+i,end='')
aaaAAA aaaBBB aaaCCC aaaDDD aaaEEE
Pythonはシェルスクリプトの上位互換になれるか???
世界標準MIT教科書 Python言語によるプログラミングイントロダクション 第2版:データサイエンスとアプリケーション
つるつる
Pythonを利用してローカルにあるテキストファイルの内容を読み込んでみたいと思います。
こんなかんじのテキストファイルを用意します。
$ cat ~/Downloads/sasasa.txt AAA BBB CCC DDD EEE
それをこんなかんじで開くことができます。
open(ファイルのPATH)
でテキストファイルを読み込み、read()
でその内容を読み込むことができます。
import os from pathlib import Path home_directory = str(Path.home()) file_path = home_directory + '/Downloads/sasasa.txt' text_file = open(file_path) content = text_file.read() print(content)
実行するとこんなかんじ。
$ ./fileopen.py AAA BBB CCC DDD EEE
シェルスクリプト的な感じでの使い方がはかどりそう。
独学プログラマー Python言語の基本から仕事のやり方まで
Pythonのfindall()
メソッドを利用して正規表現で一致したすべての文字列を取得してみます。
たとえば以下のようなかんじ。
import re wawawa = 'by the way kabegiwablog is GODblog' blog_name = re.compile(r'[^\s]*blog') search_result = blog_name.search(wawawa) print(search_result.group()) findall_result = blog_name.findall(wawawa) print(findall_result)
findall_resultをprintすると以下のようになります。
['kabegiwablog', 'GODblog']
searchだと最初に一致したもののみしか取得できません。
kabegiwablog
べんり
朝マックを食べた。
ソーセージエッグマフィン
あと最近は無限にこれを聞いている。
Pythonを利用してホームディレクトリのPATHを取得してみたいと思います。
Python 3.5 以上
Path.home()
で取得することができます。
from pathlib import Path home_directory = str(Path.home()) # '/Users/kabegiwa'
べんりー
エキスパートPythonプログラミング 改訂2版 (アスキードワンゴ)
Pythonで正規表現を使ってみたいと思います。
Pythonでの正規表現はreをimportすることで利用できます。
たとえばいかのようなかんじ。
文字列の中からブログっぽい名前をもってくる。
import re wawawa = 'by the way kabegiwablog is GOD' blog_name = re.compile(r'[^\s]*blog') search_result = blog_name.search(wawawa) print(search_result.group()) # 'kabegiwablog'
最初にre
をインポートしています。
その後re.compile
で正規表現を書いています。この際はraw文字列をつかってあげると便利です。
blog_nameというregexのオブジェクトができあがったのでそれをsearch(文字列)
で一致する文字列がsearch_resultに格納されます。
最後に.group()
でprintしてあげておわりです。
ちょっとややこしいか
はじめてのディープラーニング Pythonで学ぶニューラルネットワークとバックプロパゲーション
Pythonを利用して文字列の前後の無駄なスペースを取り除いてみたいと思います。
strip()
をつかうことで実現することができます。
wawawa = ' kabegiwa blog ' wawawa.strip() # 'kabegiwa blog'
文字列中のスペースは取り除かれません。
ちなみにlstlip()
とrstrip()
を使うことでそれぞれ文字列の前と後ろのスペースだけをとりのぞくことができます。
wawawa = ' kabegiwa blog ' wawawa.lstrip() # 'kabegiwa blog ' wawawa.lstrip() # ' kabegiwa blog'
前処理に便利
独学プログラマー Python言語の基本から仕事のやり方まで
正規表現を利用してスペースを含まない一つの単語だけを一致させます。
あたりまえというかなんというかなんだけどこれが出てくるまでにわりと悩んだのでメモ。
たとえば以下のような文字列のなかからblogが含まれる単語を探すためには
by the way kabegiwablog is GOD
こうするとよい。
[^\s]*blog
.*blog
ってやっちゃうとby the wayのところからとれちゃうのよね。
これをみた。
おもしろかった。
ホラー感はそこまで強くない。
スタンドバイミーにピエロ足した感じだなーと思ってたらどっちもスティーブンキングだった。
そりゃそうかとおもった。
あとZOZOSUITが届いたのではかってみた。
メタボリックシンドロームではなかった。
この内容でジーパンをたのんだ。
メタボリックシンドロームではなかったのでラーメンをたべにいった。
らぁ麺やまぐち辣式の麻婆まぜそば
ハイパーからい。
お風呂上がりかな?くらい汗をかいた。