初心者のメモ

Python enthusiast

複数条件のif文で、途中の条件式でfalseが出たらそれ以降の条件式は呼ばれない

def test(num): print("call test func") return True i = 1 if i == 1 and test(i): print("done") # i = 1の場合 $ python sample.py >> call test func >> done # i = 2の場合は何もprintされない $ python sample.py ということで、複数条件のif文で途中…

Git - git statusでdeleted表示のあるファイルを一度にgit rmする

一行でok git rm $(git ls-files --deleted)

Python - クラスのプロパティ名と値の組み合わせを辞書に変換したい

インスタンスのdict属性を使って変換できる。 class User: def __init__(self): self.name = 'taro' self.age = 20 user = User() user_dict = {key: value for key, value in user.__dict__.items()}

Pycharm - Project Interpreterで"nothing to show"

状況 次のディレクトリ構造のとき、child1をPycharmで開いた。 parent L .idea L child1 L child2 Project Interpreterを設定しようとしたら、"nothing to show"と表示されるだけで設定をいじれない、次のスクショの画面なった。 解決方法 一旦Pycharmを閉じ…

Docker - すべてのコンテナを停止・削除する / すべてのイメージを削除する

すべてのコンテナの停止・削除 # 停止 docker stop $(docker ps -a -q) # 削除 docker rm $(docker ps -a -q) すべてのイメージの削除 docker rmi $(docker images -q)

メモ:30秒でslackをダークテーマに変更する方法 [Mac]

1 home directoryから sudo vim ../../Applications/Slack.app/Contents/Resources/app.asar.unpacked/src/static/ssb-interop.js 2 最終行に↓を貼り付け document.addEventListener('DOMContentLoaded', function() { $.ajax({ url: 'https://cdn.rawgit.co…

Mac OSで、ディレクトリ名やファイル名、あるいはファイル内の文字列を一括置換する

ディレクトリ名/ファイル名 # "hoge"を含むディレクトリorファイルを表示 find . -name '*hoge*' # "hoge"を"fuga"に一括置換 find . -name '*hoge*' | sed 'p;s/hoge/fuga/' | xargs -n2 mv ファイル内の特定文字列 # hogeという文字列を含む行を表示 find …

JavaScript基礎

基礎 出力 console.log('hoge'); > hoge コメントアウト // console.log('hoge'); 定数 const myName = 'Tom'; console.log(myName); > Tom 変数 let age = 9; console.log(age); > 9 age += 1 console.log(age); > 10 テンプレートリテラル const selfIntro…

brew installしたときにpkg-configでsyntax errorが起きる場合の対処法

> brew install any-package-name Error: pkg-config: /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/pkg-config.rb:1: syntax error, unexpected << <<<<<<< HEAD ^ /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/…

Python コンソールへの出力を改行せずに上書きする方法

普通に出力すると for i in range(0, 100): print(i) > 0 > 1 > 2 ... > 99 > 100 と改行されて表示される。 改行せずに表示するにはsys.stdoutを使うといい。 import sys, times def print_progress(text): sys.stdout.write("\r%s" % text) sys.stdout.flu…

Dockerで起動したMySQLにローカルのsqlファイルを流し込む

> mysql -h 127.0.0.1 -u root -p でdockerの中のmysqlコンテナに入って、 > CREATE DATABASE db_name > SOURCE ./file_path/xxxx.sql

Dockerで立ち上げたmySQLにターミナルから接続

docker psでmysqlコンテナのportsを確認。 仮にportsが 0.0.0.1:3356 だったら、 次のコマンドで、Dockerで立ち上げたmysqlにterminalから接続できる。 mysql -h 127.0.0.1 -p 3356 -u root -p なお、普通に接続しようと次のエラーメッセージがでる。 > mysq…

Amazon Linux - ログアウトした後もコマンドを実行し続ける方法

nohup COMMAND >out.log 2>err.log & でok。 pythonでtest.pyを実行する場合なんかは、 nohup python test.py >out.log 2>err.log & 補足 nohup バックグラウンドで実行中のプロセスでも、 ログアウトするとHUPシグナルによって終了する。 nohupは、これを無…

SQLAlchemy - 複数テーブルを横断してロードする方法

親テーブル - 子テーブル - 孫テーブル のようなrelationのデータベースがあるとして、 # models_generated.py class Parent(Base): __tablename__ = 'parent' id = Column(Integer, primary_key=True) ..略.. child = relationship('Child') class Child(Ba…

Python − 複数のdictをひとつにまとめる方法

dict1 = {1: '田中', 2: '佐藤'} dict2 = {3: 'Joel', 4: 'King'} dicts = {**dict1, **dict2} print(dicts) >>> {1: '田中', 2: '佐藤', 3: 'Joel', 4: 'King'}

Python - 一見同じ文字列が一致しないときの対応

ブログを移転しました。 移転先のページはこちら

Python - リスト内で最初に条件に一致する要素を取得する

ls = [10, 2, 20, 5, 50] のうち、'>10' な最初の要素を取得したいときどうするか? ↓のように書ける def find(ls): for i in ls: if i > 10: return i answer = find(ls) が、もっとすっきりさせたい。そんなときはこれ。 found = next(i for i in ls if i …

Python - 2次元配列を1次元配列に変換

str_list = [[A, B, C], [D, E]] new_str_list = [flatten for inner in str_list for flatten in inner] print(new_str_list) >> [A, B, C, D, E]

SQL カラム追加/カラム名変更

> ALTER TABLE tbl_name ADD [COLUMN] column_definition; > ALTER TABLE tbl_name CHANGE [COLUMN] old_col_name column_definition; ex. > alter table users add old_address varchar(255); > alter table users change old_address new_address varchar(…

git checkout を git co で打つ

$ git config --global alias.co checkout 参考 "git checkout" は長いので "git co" って打ちたい - Qiita

Git - Pull Requestの取消方法

次のどちらのケースでも、1コマンドで取り消せます - リモートレポジトリにプッシュした直後 - プルリクエストを出したあと git push --delete origin branch-name 参考 http://tweeeety.hateblo.jp/entry/2015/06/10/220841

Git cloneからPull Requestまでの流れ

1. リモートレポジトリをローカルにclone git clone origin https://github.com/xxxxx/xxxx.git 2. ローカルレポジトリで新しくブランチを追加、チェックアウト git checkout -b feature/xxxxxxx 現在のブランチを確認 git branch 3. コーディングしたらadd…

Python リストから空のデータを削除

ls = filter(lambda str: str != '', ls) でok

Mac JISキーボード バックスラッシュ ' \ ' の入力方法

Mac OS XのJISキーボードなら [optionキー] + [¥キー] 以上。

Vim インデントの設定 tabstop, softtabstop, shiftwidth

前記事の件もあり、vimのインデント・タブ設定について調べた。メモ。 オプション 設定内容 tabstop 画面上でタブ文字が占める幅 shiftwidth 自動インデントでずれる幅 softtabstop 連続した空白に対してタブキーやバックスペースキーでカーソルが動く幅 .vi…

Python 'indentationError: expected an indented block'

他人が書いたPythonコードを触っていたら、 indentationError: expected an indented block とやたら怒られる。 見た目は同じだが、タブと空白が入り混じってインデントが乱れていた。。 "タブ文字の占める幅が4文字"設定のエディタで書かれたコードを "タブ…

Amazon LinuxでSelenium - firefoxでスクレイピングするための準備

1. EPLL yum repositoryをインストール Lambda Linux # Download package signing public key using HTTPS $ curl -X GET -o RPM-GPG-KEY-lambda-epll https://lambda-linux.io/RPM-GPG-KEY-lambda-epll # Import package signing public key $ sudo rpm --i…

Scrapy メモ

scrapy install $ pip install scrapy scrapyプロジェクト開始 scrapy startproject コマンド+ プロジェクト名 $ scrapy startproject myproject $ cd myproject spider作成 scrapy genspider コマンド + spider名 + ドメイン名 $ scrapy genspider news new…

途中でgitignoreに追加したファイルをリモートレポジトリから消す方法

途中から.gitignoreにファイル名を追加して、git pushしてもリモートレポジトリからは消えない。 対処法 git rm --cached [ファイル名] でファイルを管理対象から除外する git rm -r --cached . # その後はいつもどおりの流れ git add . git commit -m "xxx"…

csv処理でUnicodeDecodeErrorがでるときの対処法

codecsモジュールを使えば解決 例えば、csvファイルをリストに打ち込む場合は #!/usr/bin/python3 # coding: UTF-8 import csv import codecs csvdata = [] def csv2list(filepath): with codecs.open(filepath, encoding = "utf-8") as f: reader = csv.rea…