タグ

ブックマーク / note.nkmk.me (21)

  • PythonでJSONファイル・文字列の読み込み・書き込み | note.nkmk.me

    Pythonの標準ライブラリのjsonモジュールを使うと、JSON形式のファイルや文字列をパースして辞書(dict)などのオブジェクトとして読み込んだり、JSONに相当するオブジェクトを整形してJSON形式のファイルや文字列として出力・保存したりできる。 json --- JSON エンコーダおよびデコーダ — Python 3.11.4 ドキュメント すべての引数について触れているわけではないので詳細は公式ドキュメントを参照されたい。 JSON形式の文字列やファイルをpandas.DataFrameとして読み書きする場合は以下の記事を参照。 関連記事: pandasでJSON文字列・ファイルを読み込み(read_json) 関連記事: pandas.DataFrameをJSON文字列・ファイルに変換・保存(to_json) また、JSON形式のWeb APIを取得するにはRequests

    PythonでJSONファイル・文字列の読み込み・書き込み | note.nkmk.me
    takuwz
    takuwz 2020/03/23
  • Pythonで現在時刻・日付・日時を取得 | note.nkmk.me

    Pythonで現在時刻を取得するには標準ライブラリのtimeモジュールかdatetimeモジュールを使う。 UNIX時間(エポック秒)で取得したい場合はtimeモジュール、日時(日付と時刻)を表すdatetimeオブジェクトなどで取得したい場合はdatetimeモジュール。

    Pythonで現在時刻・日付・日時を取得 | note.nkmk.me
    takuwz
    takuwz 2020/03/23
  • PythonでCSVファイルを読み込み・書き込み(入力・出力) | note.nkmk.me

    Pythonの標準ライブラリのcsvモジュールを使うと、CSVファイルの読み込み・書き込み(新規作成・上書き保存・追記)ができる。 csv --- CSV ファイルの読み書き — Python 3.11.4 ドキュメント csvというモジュール名だが、カンマ区切りに限らずタブ区切り(TSV)など任意の文字列で区切られたテキストファイル(CSV: Character Separated Value)を処理可能。 すべての引数について触れているわけではないので詳細は公式ドキュメントを参照されたい。 最後に触れるが、CSVファイルから読み込んだデータの平均や合計を算出するなどといった処理を行う場合はNumPyやpandasの使用をオススメする。 記事のサンプルコードでは、csvモジュールと表示を見やすくするためのpprintモジュールを使う。 関連記事: Pythonのpprintの使い方(リ

    PythonでCSVファイルを読み込み・書き込み(入力・出力) | note.nkmk.me
    takuwz
    takuwz 2020/03/03
  • Pythonのリスト(配列)を任意の値・要素数で初期化 | note.nkmk.me

    空リストを作成 空のリスト(要素数ゼロのリスト)は以下のように作成する。リストの要素数(長さ)は組み込み関数len()で取得できる。 関連記事: Pythonでリストのサイズ(要素数)を取得

    Pythonのリスト(配列)を任意の値・要素数で初期化 | note.nkmk.me
    takuwz
    takuwz 2020/03/03
  • Pythonのrange関数の使い方 | note.nkmk.me

    range()とrange型 Python3のrange()はrange型オブジェクトを生成する。記事のタイトルでは便宜上「range関数」としているが、関数というよりrange型のコンストラクタといったほうが正確。 組み込み型 - range — Python 3.11.3 ドキュメント range型オブジェクトは値を必要なときに生成するため、print()で出力しても中身は表示されない。イテラブル(反復可能)オブジェクトなのでfor文ではそのまま使える。

    Pythonのrange関数の使い方 | note.nkmk.me
    takuwz
    takuwz 2020/03/03
  • Pythonの相対インポートで上位ディレクトリ・サブディレクトリを指定 | note.nkmk.me

    パッケージを自作する場合、パッケージ内のモジュールから上位ディレクトリ(親ディレクトリ)や下位ディレクトリ(サブディレクトリ)にあるほかのモジュール(ファイル)をインポートしたいことがある。 そのようなときは、相対パスで相対的な位置を指定してインポート(相対インポート)することができる。 6. モジュール (module) - パッケージ内参照 — Python 3.6.5 ドキュメント パッケージ内のファイルのように、他のファイルからモジュールとしてインポートされるファイルの中では相対パスを使えるが、pythonコマンドなどで実行されるファイルの中では相対パスは使えないので注意。 ここでは、まず、パッケージ内のモジュールから別ディレクトリのモジュールをインポートする方法について説明する。 自作パッケージの例 パッケージ内で別ディレクトリからインポート 同じパッケージ(同じディレクトリ)か

    Pythonの相対インポートで上位ディレクトリ・サブディレクトリを指定 | note.nkmk.me
    takuwz
    takuwz 2020/01/23
  • Pythonで複数の変数に複数の値または同じ値を代入 | note.nkmk.me

    上の例のように一つずつではなく、複数の変数にまとめて値を代入する方法を紹介する。一行のシンプルなコードで書けるので便利。

    Pythonで複数の変数に複数の値または同じ値を代入 | note.nkmk.me
    takuwz
    takuwz 2019/12/24
    python、まじか。これが自由か。>3個以上の値でもOK。a = b = c = 'string'
  • Pythonでコマンドライン引数を扱う方法(sys.argv, argparse) | note.nkmk.me

    Pythonでコマンドライン引数を扱うには、sysモジュールのargvかargparseモジュールを使う。sysもargparseも標準ライブラリに含まれているので追加のインストールは不要。 sys.argv --- システムパラメータと関数 — Python 3.11.4 ドキュメント argparse --- コマンドラインオプション、引数、サブコマンドのパーサー — Python 3.11.4 ドキュメント sys.argvは非常にシンプルで簡単に使えるが、引数の個数に応じた処理や型変換を自分で行う必要がある。argparseは設定のためのコードが必要だが、オプションを使ったり任意の個数の引数を扱ったりできる。 決まった個数の引数に対して処理を行うのであればsys.argvで十分だが、コマンドラインツールとして使うような場合はargparseを使ったほうが柔軟に引数を処理できて便利。

    Pythonでコマンドライン引数を扱う方法(sys.argv, argparse) | note.nkmk.me
    takuwz
    takuwz 2019/12/24
  • Pythonで2進数、8進数、16進数の数値・文字列を相互に変換 | note.nkmk.me

    整数ではなく浮動小数点数float型を16進数の文字列に変換したい場合は以下の記事を参照。 関連記事: Pythonで浮動小数点数floatと16進数表現の文字列を相互に変換 そのほか、文字列strと数値int, floatの変換の基については以下の記事を参照。 関連記事: Pythonで数字の文字列strを数値int, floatに変換 整数を2進数、8進数、16進数で記述 プレフィックス0b, 0o, 0xをつけると、整数型intの数値をそれぞれ2進数、8進数、16進数で記述できる。print()での出力は10進数表記になる。

    Pythonで2進数、8進数、16進数の数値・文字列を相互に変換 | note.nkmk.me
    takuwz
    takuwz 2019/11/29
  • Pythonのprint関数で文字列、数値および変数の値を出力 | note.nkmk.me

    Pythonで文字列や数値、変数に格納された値などを標準出力(sys.stdout)に表示するprint()関数について説明する。 組み込み関数 - print() — Python 3.11.3 ドキュメント

    Pythonのprint関数で文字列、数値および変数の値を出力 | note.nkmk.me
    takuwz
    takuwz 2019/11/29
  • Pythonで文字列を抽出(位置・文字数、正規表現) | note.nkmk.me

    Pythonで文字列strから部分文字列を抽出する方法について説明する。任意の位置・文字数を指定して抽出したり、正規表現のパターンで抽出したりできる。 文字列を検索して一致する部分の位置を取得したい場合や、文字列中の部分文字列を別の文字列に置換したい場合は以下の記事を参照。 関連記事: Pythonで文字列を検索(〜を含むか判定、位置取得) 関連記事: Pythonで文字列を置換(replace, translate, re.sub, re.subn) テキストファイルから抽出したい場合は、ファイルを文字列として読み込めばよい。 関連記事: Pythonでファイルの読み込み、書き込み(作成・追記)

    Pythonで文字列を抽出(位置・文字数、正規表現) | note.nkmk.me
    takuwz
    takuwz 2019/11/29
  • Pythonで文字列を分割(区切り文字、改行、正規表現、文字数) | note.nkmk.me

    区切り文字で分割: split() 区切り文字で分割するには文字列(str型)のsplit()メソッドを使う。 組み込み型 - str.split() — Python 3.11.4 ドキュメント デフォルトは空白文字(スペースや改行\n、タブ\tなど)で分割する。連続する空白文字はまとめて処理される。 戻り値はリスト。 s_blank = 'one two three\nfour\tfive' print(s_blank) # one two three # four five print(s_blank.split()) # ['one', 'two', 'three', 'four', 'five'] print(type(s_blank.split())) # <class 'list'>

    Pythonで文字列を分割(区切り文字、改行、正規表現、文字数) | note.nkmk.me
    takuwz
    takuwz 2019/11/29
  • Pythonで関数を定義・呼び出し(def, return) | note.nkmk.me

    Pythonにおいて関数の定義と呼び出し(実行)を行う方法について説明する。defやreturnを使う。 そのほか、無名関数(ラムダ式)、docstring(ドキュメンテーション文字列)、関数アノテーション、コマンドライン引数については以下の記事を参照。 関連記事: Pythonlambda(ラムダ式、無名関数)の使い方 関連記事: Pythonのdocstring(ドキュメンテーション文字列)の書き方 関連記事: Pythonの関数アノテーションと型ヒント、typingモジュール 関連記事: Pythonでコマンドライン引数を扱う方法(sys.argv, argparse) 公式ドキュメントの関数定義についての部分は以下。 4. その他の制御フローツール - 関数を定義する — Python 3.11.3 ドキュメント

    Pythonで関数を定義・呼び出し(def, return) | note.nkmk.me
    takuwz
    takuwz 2019/11/29
  • Pythonで浮動小数点数floatと16進数表現の文字列を相互に変換 | note.nkmk.me

    Pythonで浮動小数点数floatと16進数表現の文字列を相互に変換する方法を説明する。 標準ライブラリstruct, binasciiモジュールを使う方法 float型のメソッドhex()とfromhex()を使う方法 の2つの方法があり、それぞれ変換できる16進数表現の形式が異なる。 Pythonのfloatは他のプログラミング言語ではdoubleなどと呼ばれることが多い倍精度浮動小数点数(64bit)だが、(1)の方法では32bitの16進数表現に変換する方法についても述べる。 ここでは、以下の内容について説明する。 2つの16進数表現 シンプルな16進数表現 pを含む16進数表現 浮動小数点数floatとシンプルな16進数表現文字列との相互変換 floatから16進数表現文字列 2進数、8進数への変換 16進数表現文字列からfloat 単精度浮動小数点数(32bit)の場合 浮動

    Pythonで浮動小数点数floatと16進数表現の文字列を相互に変換 | note.nkmk.me
    takuwz
    takuwz 2019/11/29
  • Pythonで数字の文字列strを数値int, floatに変換 | note.nkmk.me

    Pythonで数字の文字列strを数値に変換したい場合、整数に変換するにはint()、浮動小数点数に変換するにはfloat()を使う。 なお、数値を文字列に変換する場合はstr()を使えばよい。 数値や文字列を0埋めや2進数、8進数、16進数、指数表記など様々な書式に変換したい場合はformat()関数または文字列メソッドstr.format()を使う。以下の記事を参照。 関連記事: Python, formatで書式変換(0埋め、指数表記、16進数など) また、文字列のリストを数値のリストに変換することもできる。以下の記事を参照。 関連記事: Pythonで文字列のリスト(配列)と数値のリストを相互に変換

    Pythonで数字の文字列strを数値int, floatに変換 | note.nkmk.me
    takuwz
    takuwz 2019/08/23
  • Pythonのif __name__ == '__main__'の意味と使い方 | note.nkmk.me

    Python初心者がサンプルコードを見たときに理解に苦しむのが、おまじないのように書かれているif __name__ == '__main__'。 アンダースコアに惑わされるが「__name__に格納されている値が'__main__'という文字列であれば、以降の処理を実行する」という単なるif文。 関連記事: Pythonのif文による条件分岐の書き方(if, elif, else) __name__と'__main__'の意味が分かれば理解できる。

    Pythonのif __name__ == '__main__'の意味と使い方 | note.nkmk.me
    takuwz
    takuwz 2019/07/22
  • Pythonのif文による条件分岐の書き方(if, elif, else) | note.nkmk.me

    Pythonのif文による条件分岐(if ... elif ... else ...)について、基的な書き方や複数条件・否定条件を含む条件式の指定方法などを説明する。 8. 複合文 (compound statement) - if文 — Python 3.12.0 ドキュメント

    Pythonのif文による条件分岐の書き方(if, elif, else) | note.nkmk.me
    takuwz
    takuwz 2019/01/12
  • Pythonでファイルの読み込み、書き込み(作成・追記) | note.nkmk.me

    Pythonでのファイルの読み込み(入力)・書き込み(出力)ついて説明する。ファイルの中身を文字列やリストとして取得したり、ファイルを新規作成・上書き・追記したりできる。 ここではパス文字列を使う組み込み関数open()について説明するが、パスをオブジェクトとして操作するpathlibモジュールでも同様の処理が可能。ファイル全体を読み書きする場合はpathlibのread_text()などのメソッドを使うと楽。 関連記事: Python, pathlibでファイルの作成・open・読み書き・削除 また、Web上のファイルをダウンロード・保存したい場合は以下の記事を参照。 関連記事: PythonでWeb上の画像などのファイルをダウンロード(個別・一括) open(), withによるファイル読み書き(入出力) 基的な書き方 読み込み・書き込みいずれの場合も組み込み関数open()でファイ

    Pythonでファイルの読み込み、書き込み(作成・追記) | note.nkmk.me
    takuwz
    takuwz 2018/11/30
  • Pythonのdatetimeで日付や時間と文字列を変換(strftime, strptime) | note.nkmk.me

    Pythonの標準ライブラリdatetimeで、日時(日付や時間・時刻)を処理できる。日時と文字列を相互に変換するメソッドstrftime()とstrptime()で、様々なフォーマットの日付や時間を操作できる。 引き算や足し算も可能で、例えば、10日前の日付や50分後の時刻などを計算できる。 datetime --- 基的な日付型および時間型 — Python 3.11.3 ドキュメント datetimeモジュールでは以下のクラスが定義されている。モジュール名と日時を扱うクラス名が同じdatetimeなので混同しないように要注意。 datetime.datetime: 日時(日付と時刻) datetime.date: 日付 datetime.time: 時刻 datetime.timedelta: 時間差・経過時間 ここでは、それぞれのクラスについて説明したあとで、日時と文字列を相互に

    Pythonのdatetimeで日付や時間と文字列を変換(strftime, strptime) | note.nkmk.me
    takuwz
    takuwz 2018/09/12
  • Pythonで文字列を連結・結合(+演算子、joinなど) | note.nkmk.me

    複数の文字列を連結・結合: +, +=演算子 +演算子で連結 +演算子を使って、文字列リテラル('...' or "...")および文字列の変数を連結できる。 s = 'aaa' + 'bbb' + 'ccc' print(s) # aaabbbccc s1 = 'aaa' s2 = 'bbb' s3 = 'ccc' s = s1 + s2 + s3 print(s) # aaabbbccc s = s1 + s2 + s3 + 'ddd' print(s) # aaabbbcccddd

    Pythonで文字列を連結・結合(+演算子、joinなど) | note.nkmk.me
    takuwz
    takuwz 2018/09/12