kuroの覚え書き

96の個人的覚え書き

Python

MySQL版データベースアプリを実機サーバでテスト(するためのサーバ環境構築)

Python3が入ってないし。 https://weblabo.oscasierra.net/python3-centos7-yum-install/ を参考にPython3のインストールから。 # yum install -y https://centos7.iuscommunity.org/ius-release.rpm3.6系を入れることにする # yum install -y python36u pyt…

SQLite版とMySQL版の比較

Macローカルで初期画面をロードしてから、すぐにデータベースを開く操作をしてみるとSQLite版 127.0.0.1 - - [25/Dec/2017 19:24:29] "GET / HTTP/1.1" 200 - elapsed_time:0.0034799575805664062[sec] 127.0.0.1 - - [25/Dec/2017 19:24:36] "GET /exome/ H…

Pythonのスクリプトをデスクトップアプリ化する

自分で作成したアプリを自分の環境において使う分にはコマンド操作で全然問題ないが、人にわたして使ってもらうとなると モジュール等揃えてインストールしてもらって・・・となかなかハードルが高くなる。 なので簡単にデスクトップアプリ化できるならそれ…

PythonでCSVのリストに従ってGoogleで検索し、結果をスクレイピングする

詳細検索画面の初期設定で検索キーワードを入れて検索をする動作を自動化する。 https://www.google.co.jp/advanced_search?q= たとえば上の検索は https://www.google.co.jp/search?as_q=Python+Flask+SQLAlchemy+k-kuro&as_epq=&as_oq=&as_eq=&as_nlo=&as_…

csvファイルを読み込んでgoogleに検索を投げてトップヒット10件を集めてくる

import requests r = requests.get('http://www.google.co.jp/search?as_q=キーワード1+キーワード2・・・・') r.textとりあえずこれだけで検索の結果のhtmlファイルが得られる。なので import csv with open('some.csv', 'r') as f: reader = csv.reader(…

multiprocessor, multithread

https://qiita.com/petitviolet/items/64965e9ba236ebbdd37fhttps://qiita.com/yukiB/items/d6a70da802cb5731dc01

インプットファイルの整形からSQLiteへのインポートまでを1スクリプトで

import glob import csv import os def cat_input_files(lst): for f in lst: with open(f, 'r') as inp: reader = csv.reader(inp, delimiter='\t') next(reader) for row in reader: with open('./temp/temp.txt', 'a') as oup: writer = csv.writer(oup, …

多数のテキストファイルからヘッダ行を除いて1つのファイルにまとめる

#!/bin/sh #ls /target/multiannovar/filtered/files > list.txt #list.txtを引数として # $ sh ./input_files.sh list.txt mkdir -p ./temp filename=$1 for line in `cat ${filename}` do fname="${line##*/}" #ファイルからヘッダ行を除く sed -e '1d' $l…

python3でシェルスクリプトのようなことをする

lsをPythonで書くなら ls.py import os import sys # モジュール属性 argv を取得するため argvs = sys.argv # コマンドライン引数を格納したリストの取得 argc = len(argvs) # 引数の個数 if (argc != 2): # 引数が足りない場合は、その旨を表示 print('Err…

SQLiteにインポートするファイルにIDを前もって入れておく

MacのSQLiteではIDカラム分の無いファイルをインポートしようとしたらカラムが足らないのでnullを埋めるよという警告が出た上でインポートされ、ついでにPRIMARY KEYなのでインクリメントされたIDを自動でふってくれるのだが、どういうわけかCentOSではエラ…

PythonでSQLiteのTableにtsvからインポート

https://pypi.python.org/pypi/swadr/1.2.1 これがかんたんに使えそうな感じ。 .importする代わりにINSERTで1行ずつ入れていくのが常法なようだけど、カラム数が多いとちょっと面倒だし。とおもったらpipでインストールできないよ。作業用データベース・テー…

tableへのデータアップデートを考える

とにかく行数が増えてくるとsqlのupdateのスピードがかなり負担になってくる。なのでテキスト処理だけで大方のカラム整形をやって、一部分だけsql文でなんとかする方法を考えた。特に、今後私の手を離れた後にメンテナンスが容易なように、スクリプトでちょ…

wtfの検索値を記憶する

SelectFieldの設定値を記憶させて次のセッションでそれを入れさせようとあれこれ考えたが、なかなかうまくいかない。 そこで違ったアプローチでの実現を考える。 要するに前回の検索値のセットをまとめて記憶しておいて、画面上の検索入力をすっ飛ばして記憶…

flaskで作ったアプリをdaemon化してserviceとして起動する(導入編)

Flaskで作ったアプリをサーバに置いて本格的に運用するなら、いちいちコマンドラインから起動するのは面倒くさい。 サーバを再起動する度にvncでログインして起動して、ログインしたまんまにしておかないとならないというのではイマイチだ。最初apacheをwww…

SQLAlchemyを組み込む step by step

やることは データベースへの接続 テーブルの定義 マッピング先のPythonクラスを定義する セッションの作成 という感じ。まずはどのサイトでも書かれているimport しかしサイトごとに書き方が色々で、最もざっくりしたものだと from sqlalchemy import * fro…

環境を移すと機能しない

MacBook Airで作成してきちんと動いたのに、iMacに持ってくるとエラーが出る。 USBメモリ上に作成してそれを直接起動しても同じ。 python3のバージョンもライブラリ環境もvirtualenvで同じにしているのにBAMファイルを読み込もうとするとエラーが出る。 これ…

HGCスパコンにpyenvとpython3.6.1を入れて使う

HGCのスパコンでpythonを使おうとしたところ、なにもしないと2.7.10が起動し、/usr/local/package/python/3.4.1を使おうとしたらなにやらライブラリがないと言って起動してくれない。ということでpyenvを導入した上でpython3.6.1を使えるようにユーザー環境…

パスワードの設定

パスワードはハッシュアルゴリズムによって暗号化してファイルに記載するのが重要なのだが、今時はハッシュ化をさらに何回も繰り返すことで攻撃者を撃退するらしい。そのためにBcryptを導入する。app/__init__.pyに以下を追加 from flask_bcrypt import Bcry…

ユーザー認証 Flask-Login

昨日いちにち本と首っ引きで作業したがやはりどこかおかしく、うまく動作しない。 今日はちょっとアプローチを変えてやってみよう。あと、作業を逐一記録しないとホントわけがわからなくなる。Login-managerの登録をapp/__init__.pyに追記 login_manager = L…