py-py’s blog

何か書くよ

Python

エラーが起きたときの関数名を取得する

どこかでの関数でエラーが起きた場合に、その関数名を取得したいときに使う。 import inspect def test_func(): try: # 何かの処理 except Exception as e: this_function_name = inspect.stack()[0][3] print(f"error happens {e} : {this_function_name}")

urllib.request.urlopen()で特定のサイトが開かない場合

よくあるある。 記事書いたか覚えないけど、覚えてないことはまた書いておこう。 題名の通りで urlopen()で開かない timeout=nを指定してもだめ な時にはUser-Agent情報を付与すること。 from urllib.request import urlopen url = "hogehoge" reqeust = url…

csvで出力すると一行空く

今まで2重配列をwriter.writerows()で一気にいれていたため、こういうことはなかった。 ただ、一行ずつ入れるときに一行空いてしまったためググったら速攻どんぴしゃな記事が。 qiita.com import csv with open(file_name, "w", encoding="utf-8_sig, newlin…

urlopen()で引数に日本語が含まれているとアクセスできない件【追記あり】

今までファイルを取得してきた中でファイル名に日本語が含まれているものが少なかった。 今回日本語が含まれるファイルがいくつかあったため、その際に取った方法を。 サンプルurl: http://www.nantara.com/ほげほげ.jpg 流れ ①urlに日本語があるか確認する …

BeautifulSoupオブジェクトをhtmlに変換する

BeautifulSoupで既存のhtmlを加工した後、htmlとして使いたいときに以下の関数を利用する。 soup.prettify() from bs4 import BeautifuSoup, ResultSet html : str = "" with open("hoge.html", "r", encoding-"utf-8") as f: html = f.read() soup = Beauti…

seleniumでキーを押しながら要素をクリック

する際にActionChainsに、seleniumで取得した要素をつっこんで怒られていた話。 ActionChainsに突っ込むのはdriverで、取得した要素を突っ込むのはActionChainsオブジェクトの関数click() from selenium import webdriver from selenium.webdriver.common.ke…

WebDriverWait(driver, timeout)って条件満たすまで待機してるの?

こんな感じのコードがあるとする from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions from selenium.webdriver.common.by import By url = "対象サイト"…

Anacondaを使わずにvenv仮想環境下でnumpy, pandasを使いたい

が、できず。。なぜだ。 前提 windows Python3.7.2 venvで仮想環境作った venvの仮想環境をactivateしてpipが古いからアップデートして pip install pandas で依存ライブラリ入ってインストには成功するのに Pycharm上でimport pandasと打つと 「ModuleNotFo…

Pythonによる文字データの圧縮

DBにデータを入れる際に、データが大きすぎてinsertできなかったため、データを圧縮して保存することにした。 方法は簡単で、以下のようになる その前にいくつかまとめる .encode() .decode() .hex() .fromhex() encode()の使い方 文字列をbytes型へ変換する…

cmdのバッチからPythonを動かす

前提: windows python3.6 バッチファイルとして以下を記述 exe_python.bat @echo off Pythonのパス 実行したいpythonファイル pause 例: ディレクトリに以下のファイルを作る main.py execute_main.bat execute_main.bat @echo off Pythonへのパス main.py …

configで日本語を使いたいとき

Pythonの設定ファイルでconfigparserでconfig.iniを作ったときの話 前提 windows python3.6.2 中身に日本語が入っているときに、そのままread(config_name)をすると 「cp932' codec can't decode」と怒られる そのためread(config_name, "utf-8")とすること …

csvファイルの読み込み

忘備録 id, name, sex のようなカラムを持つcsvファイルを読んだ時に、カラム名と中身を取得する。 with open("test.csv", "r", encoding="utf-8") as csv_file: csv = csv.reader(csv_file) result = [content for content in csv] column = result[0] cont…

xml

Pythonでxmlを扱うスニペットを挙げて最後に何でtagを使うんだろう と思っていたが、cpythonのコードを見てみたら書いてあった。 Element is a flexible container object designed to store hierarchical data structures in memory. It can be described a…

また別の本を買ってしまったようだな

以下の書籍をついつい買ってしまった。 アマゾン:やさしいPython 記載してあることは大体知っているが、結構うまくまとめられていて さっと見返してリファレンスとして利用するにはちょうど良い。 appendixが有用。 通読は気が向いたときに行うけれど、常用…

PythonとElasticsearch

Two Scoops of Django Head First Python 第2版 ―頭とからだで覚えるPythonの基本 「Head First Python」 他言語経験者向けとはっきり書かれている。 後半Flaskを利用したWebアプリケーションの作り方を載せている。 FlaskやるならDjangoかなと思っているの…

クラスについて

クラスの作り方 class Classname: statement クラスからインスタンスを作る variable = Classname() #Classnameの引数がある場合もある 初期化メソッド def __init__(self,argv1,argv2,argv3...):#なお、このselfはインスタンス自身を表す # 初期化処理 # イ…

例外処理

例外処理 初心者がよく見るエラー ・NameError ・ZeroDivisionError ・IndexError ・FileNotFoundError などなど エラーが発生するとプログラムの処理が止まってしまうため 例外処理を挟んでプログラムを止めないようにする。 まず基本。 try ~ except try: …