きゃっとぐるーぶ

忘れてもいいようにメモを取っても、メモを取ったことを忘れる男の備忘録

AndroidでTermux使うための設定方法

初期設定 端末のネットワーク設定 クライアントAndroidのIPアドレスを固定する必要があります。 IPアドレスが変わるたびに調べる必要があるため、固定することをおすすめします。 設定の一例: Android 7.0の場合 [設定] - [Wi-Fi] - [利用可能なネットワーク…

可変長引数 ふたつのreturnから返ってくる

def foo(*args, **kwargs): return args for k, v in kwargs.items(): return k, v ret = foo(3, {'Hello': 'World'}) # # (3, {'Hello': 'World'}) 私のreturnの理解は、ひとつめのreturnで関数を抜けるでした。 def bar(arg) value = 100 if arg > value: …

Thinkpad X250 の中古を購入してみた 簡易レビュー

中古ノートパソコン「lenovo Thinkpad X250」を購入してみた 購入したのは「Thinkpad X250」です。 Amazonのマーケットプレイスで中古で27,800円でした。 この価格が安いのか否かはわかりません。 販売業者はALEXPCです。 梱包、注文から商品到着まで不満は…

jupyterでrubyを使う方法 ArchLinux系の場合

実行環境はManjaro Linuxです。 またpythonのvenv環境にあるjupyterにruby kernelをインストールしました。 環境設定 $ source myenv/bin/activate 必要なものをインストール $ yay -S ruby-cztop $ yay -S czmq $ sudo pacman -S zeromq ruby kernelインス…

PythonでYahooの画像検索から画像をスクレイピング

プログラミングに興味を持ち、「作りたいもの」を考え続けてもう7年もの月日が経ちました。 まるで「自分探しの旅」をする意識高い系の若者のようにそこらへんを彷徨い続けています。 ここ数日、プログラミング熱が再発したのでコードを書き始めたらまたス…

pathlibでfile.pyのフルパスを取得する

実行してるpythonファイルまでのパスやカレントディレクトリを取得したいときがある。osとpathlibあるけどどっちが便利なのよと思ったので並べてみた。好みはpathlib。オブジェクトを返してやれば、パスの切り貼りが楽なのよね。osかpathlibどちらがいいかと…

PythonのdictでkeyがなくてもKeyError例外をださない方法

KeyErrorの例外をキャッチするために例外を書いてたが、dic.get()を使えばそんな必要もない。公式ドキュメントを読むのが大事といいますが、ほんとですね。 dic = {"id":"1000", "name":"okaz", "group":['sys', 'wheel', 'optical']} print(dic["id"]) prin…

Python requests_htmlを使って画像をスクレイピングする

画像のまとめサイトのようなところから画像を拾ってくるプログラムをプログラミング学習目的でつくりました。そのため私以外の環境では動くのかは不明です。 main()部分がすっきり書けて可読性もいいかなと過去の自分のプログラムと比較するとそう思います。…

クリップボードにある将棋倶楽部24の棋譜をファイルにする

将棋倶楽部24の自由対局室で対局すると棋譜が残らない。棋譜はコピーすれば保存できるが対局日、対局者名、そして勝敗を棋譜ファイル名に反映するのは手間だ。そこでそれらを勝手にやってくれるプログラムを書いた。 クリップボードは clipit を使用してい…

Pythonでタイピング練習プログラム

あいかわらずPythonでスクレイピングばかりしているわけですが、テーブルタグのスクレイピングが苦手なので、練習がてらに英単語をスクレイプした際に出来たデータをつかい英単語練習用プログラムを作ってみました。単語のスペルをタイプし、その単語の意味…

日本将棋連盟の詰将棋URLをランダムで表示する

日本将棋連盟にはプロ棋士が考案した詰将棋が数多くあり、新作もほぼまいにち公開されています。それをTwitterなどに流して解いてもらうようです。それを見ていて私としては、ランダムに出題するページがあったらいいのになあと思ったので作りました。ランダ…

dictの入れ子になったlistからある要素を探すには

重複した要素を探して、そのkeyとindexを知りたかった。 データ data = {'y': [['a', '234'], ['b', '567']], 'x': [['c', '890'], ['d', '333']]} 作った関数 def foo(arg): for key in data.keys(): for idx, valule in enumerate(data[key]): if arg in v…

将棋プロ棋士のプロフィールを拾ってくるクラス

日本将棋連盟のサイトから棋士のプロフィールを拾ってくる。 作ってみたは良いけど、使いみちは特にないw kp = KishiPicker('https://www.shogi.or.jp/player/pro/175.html') ret = kp.parson_name() print(ret) # ('羽生善治', 'Yoshiharu Habu') ret = kp.…

「寄せの手筋200」を読み終えたら取り組みたい必至問題集

級位者でも解ける必至問題集はこの2冊 寄せの手筋200は級位者から段位者まで読まれる名著です。将棋ウォーズの2級ぐらいで手に取る人が多いと思います。寄せの手筋200の内容を自分の血肉にするために必至問題集を解くことをオススメします。ちなみに…

覚えたてのDockerでsquidを動かしてみた

明日から「令和」元年ですね。もうすぐ平成の御代が終わろうとしてるなか、私はパソコンに向かいDockerのお勉強をしています。 幼いときに先帝の崩御に接し、テレビがそれ一色だったのをよく覚えています。テレビっ子だったもので・・w 譲位による御代替わ…

Pydroid 3でjupyterを動かすための設定

pydroidのtermialカレントディレクトリを変更 ファイラーから容易にアクセス出来る場所が無難 configファイルの作成 アプリ再起動後 $ jupyter notebook --generate-config こうすることでコンフィグファイルをメモアプリから編集できる jupyter_notebook_co…

将棋倶楽部24のユーザー情報を集めたい

将棋倶楽部24のユーザー情報をスクレイプして、JSON化する。 サークルメンバーのレートや勝敗の変動を観察する目的。 名簿で検索し、それをコピペ、csvにして保存。 保存したcsvをプログラムでJSON化する。 csvにする過程もPythonで行いたいがrequest_html…

Pythonで重複ファイルを削除したい

プログラミングはたくさんコードを書いていくのが一番の学習なんだそうだ。 ちなみに、私のプログラミングのスキルは初学者に毛が生えた程度。(ハゲの話はしてない) 正直、プログラミングをする動機は私にない。作りたいものがない。 だから、シェルスクリ…

将棋クラブ24の棋譜がshift_jisなのでまとめてutf-8に変換したい

将棋クラブ24では棋譜の一括ダウンロードをユーザーページから行える。ダウンロードするとzipファイルが落ちてくる。それはいいのだが、棋譜の文字コードがshift_jisなのでwindowsユーザーではない私の環境には適さない。そのため、一括で変換してしまうこ…

TermuxでGUI環境を構築した openboxとpcmanfmが動くよ♪

TermuxというLinuxを非rootで動かせるAndroidアプリがあります。 そのアプリでGUI環境を構築してみました。 やったことはvncserverをtermuxで立ち上げ、openboxを走らせました。 GUIで動くソフトは少なくブラウザはないようです。動画の再生もできません。 …

tempfile 一時ファイルやディレクトリの作成

テキストファイルの文字コードを変えたいときとかに、一旦どこかへ退避させる必要があるんだけど、自分でやらんでもよかったのね。zip展開に一時ディレクトリを活用しよ。 一時ファイルの作成 import tempfile f = tempfile.NamedTemporaryFile('w+') f.name…

ファイルの文字コード変更 utf-8 => shift_jis

import codecs def to_shiftjis(org_file, dst_file): of = codecs.open(org_file, 'r', 'utf-8') df = codecs.open(dst_file, 'w', 'shift_jis') for line in of: df.write(line) of.close() df.close() 退屈なことはPythonにやらせよう ―ノンプログラマー…

split()と rsplit()を使う splitlines()で改行区切り

split()で狙い通りに区切り位置が指定できないときは word = "John F. Kennedy International Airport" word.split() # > ['John', 'F.', 'Kennedy', 'International', 'Airport'] # と返ってくる word.split(None, 2) # > ['John', 'F.', 'Kennedy Internat…

振り飛車党なら必須な棋書3冊をご紹介します

四間飛車上達法 藤井猛 四間飛車を指さない方でも読んでおくと得です。 たとえば美濃囲いの左金の使い方。自由に動かしていいという発想は四間飛車上達法を読むまでありませんでした。 四間飛車上達法 (最強将棋レクチャーブックス)作者: 藤井猛出版社/メー…

将棋が強くなるためには詰将棋が最適?! 詰将棋のやりかた

詰将棋は「正解」以外に意味がある 詰将棋は正解しなくてもよい 10秒考えてわからなかったら答えを見る 正解以外の手順を探す 持駒を変えてみる(角だったら詰むけど、銀なら?) 詰将棋本は最低20周する 1周目〜5周目は普通に解く 6周目〜10周目まで…

request-htmlでリンクを拾い集めるのが簡単だったので簡易画像ダウンローダーをつくった

追記: 画像の保存先を記事ごとに振り分けるように作ったもの。 Pythonで画像ダウンローダーを作ってみた - きゃっとぐるーぶ ページ内のリンクを収集するのが本当に楽。 from requests_html import HTMLSession session = HTMLSession() r = session.get(pa…

「アラート無限ループ事件」のオマージュ? パソコンのCDトレイを無限に出し入れしつづけようじゃないか

先日ブラウザのアラートを無限に出し続けるコードを拡散したら逮捕された若者が居た。 ならば、ssh接続してるマシンのCDトレイを無限に出し入れしたらおまわりさんはお家にやってくるのだろうか。 $ while true ; do eject && eject -t ; done C-cで終了 入…

requests + BeautifulSoupでスクレイピングで文字化けしたときの対処法

from bs4 import BeautifulSoup import requests r = requests.get(page_url) # 追加する r.encoding = r.apparent_encoding soup = BeautifulSoup(r.text, 'lxml') 文字化けは解決するが若干時間がかかるようになる。 Pythonクローリング&スクレイピング -…

Pythonからpyperclipを使ってクリップボードを読み書きする方法

pyperclipのインストール $ pip install pyperclip import pyperclip # クリップボードから読み込み clipboard = pyperclip.paste() # クリップボードに書き込み pyperclip.copy(data) import pyperclip clipboard = pyperclip.paste().split('\n') data = […

jupyter notebookにkernelを追加する方法

任意の名前でvenvを作成 $ python -m venv <kernelname> アクティベートする $ source <kernelname>/bin/activate ipykernelをインストール $ pip install ipykernel jupyterで使えるようにする $ ipython kernel install --user --name=<kernelname> ipythonとなってるが問題はない。 これで新規</kernelname></kernelname></kernelname>…