vscode - コードチェッカー、フォーマッター

インストール

コードチェッカー、フォーマッターのインストール

conda install -c conda-forge flake8 black isort mypy
pip install flake8 black isort mypy

vs codeでの設定

Work spaceを作る場合はworkspaceのsetting.jsonを以下の通り

{
    "python.linting.flake8Enabled": true,
    "python.formatting.provider": "black",
    "editor.formatOnSave": true,
    "editor.codeActionsOnSave": {
        "source.organizeImports": true
    },
    "python.linting.mypyEnabled": true,
    "python.linting.flake8Args": [
        "--max-line-length=88",
        "--ignore=E203,W503,W504"
    ],
}

References

unix - コマンドの標準出力を変数として使用する

コマンドの標準出力を変数として使用する

コマンドの出力を変数に設定したい場合は、 (バッククォート) を使用する

$ VAR=`date "+%Y-%m-%d"`
$ echo $VAR
2022-09-02

References

変数を使用する | UNIX & Linux コマンド・シェルスクリプト リファレンス

tar - フォルダの圧縮・解凍

フォルダの圧縮・解凍

フォルダの圧縮

$ tar -czvf directory.tar.gz directory
  • -c : アーカイブを作成する
  • -z : アーカイブファイル名を指定する
  • -f : gzipでの圧縮を指定
  • -v : 処理しているファイル情報を出力

フォルダの解凍

$ tar -xzf archive_name.tar.gz

References

Python - 辞書型データのdot notation

SimpleNamespace

>>> from types import SimpleNamespace
>>> d = {'key1': 'value1', 'key2': 'value2'}
>>> n = SimpleNamespace(**d)
>>> print(n)
namespace(key1='value1', key2='value2')
>>> n.key2
'value2'

References

Python - ファイル名の変更

ファイル名の変更(os.rename)

ファイルから作成日の情報を取り出して、'yymmdd'の形式でファイル名の最初につける。

  • ファイル名の変更: os.rename
# ファイルから作成日の情報を取り出して、'yymmdd'の形式でファイル名の最初につける

import os
from datetime import datetime
from glob import glob

def get_dateStr(path: str, system_type='unix'):
    if system_type=='unix':
        c_timestamp = os.stat(path).st_birthtime
    else:
        c_timestamp = os.path.getctime(path)    # for Windows PC

    dt = datetime.fromtimestamp(c_timestamp)
    date_str = datetime.strftime(dt, '%y%m%d')
    return date_str

def rename_cdate(path: str):
    data_str = get_dateStr(path)
    rm_file_name = f"{data_str}_{os.path.basename(path)}"
    rm_path = os.path.join(os.path.dirname(path), rm_file_name)
    os.rename(path, rm_path)

if __name__ == '__main__':
    path_list = glob('*.md')
    for path in path_list:
        rename_cdate(path)

ファイル名の冒頭に作成日(yymmdd)をつけてrename · GitHub

python - 自作のスクリプトをimportして使う

自分で書いたPythonスクリプトをimportして使う

スクリプトファイル自身のpathからの相対pathをsys.pathに登録

__file__でスクリプトファイル自身のpathを参照できるので、これを利用する。

import os
import sys

# スクリプト自身のpathから一階層上のディレクトリをsys.pathに加える。
sys.path.append(os.path.join(os.path.dirname(__file__), '..')

References

Pythonでimportの対象ディレクトリのパスを確認・追加(sys.pathなど) | note.nkmk.me

Bizmates channel

英語初心者向け 英文法10分聞き流し

www.youtube.com

Contents

  1. 【英語初心者向け 英文法10分聞き流しでマスター 】「be動詞」Bizmates Grammar 36 #1 - YouTube
  2. 【英語初心者向け 英文法10分聞き流しでマスター 】「所有格」Bizmates Grammar 36 #2 - YouTube

References

ビジネスを成功に導く英会話学習の旅を楽しくする、動画チャンネル。 Bizmates Channel

DOIにマッチする正規表現

以下の正規表現で99%以上のDOIは識別されるとのこと。 さらにカバー率を上げるにはrefを参考に追加で4つのパターンを加える。それでもマッチできないものは僅かに残るとのこと。

/^10.\d{4,9}/[-._;()/:A-Z0-9]+$/i

References

python - xmlファイルを辞書型、json形式に変換

conda install -c conda-forge xmltodict

上記でインストール

import xmltodict
import json

with open('data.xml', 'r') as f:
    xml_data = f.read()

dictionary = xmltodict.parse(xml_data)
json_object = json.dumps(dictionary) 
print(json_object)

References

NCBI E-utilitiesからの情報の取得例 (E-utilities URL)

注意点

API keyなしでは3回/秒までのリクエスト。(API keyありで10回/秒がデフォルト) この条件を超えないようにすること。これ以上のアクセスが必要な場合はNCBI所定の登録が必要

A General Introduction to the E-utilities - Entrez Programming Utilities Help - NCBI Bookshelf

NCBIのE-utilitiesからデータを取得したいときのURLのsyntax

www.ncbi.nlm.nih.gov

E-Fetch

PMIDからabstractを取得したり、PubMed centralのfull textデータ取得の場合の例などは下記に記載されている。

The E-utilities In-Depth: Parameters, Syntax and More - Entrez Programming Utilities Help - NCBI Bookshelf

PubMed
  • Fetch PMIDs 17284678 and 9997 as text abstracts:
https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=17284678,9997&retmode=text&rettype=abstract
  • Fetch PMIDs in XML:
https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=11748933,11700088&retmode=xml
PubMed Central
https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pmc&id=212403

参考

使用できるdbとデータ型の一覧

https://www.ncbi.nlm.nih.gov/books/NBK25499/table/chapter4.T._valid_values_of__retmode_and/?report=objectonly