- 1. pythonの勉強 update()による辞書の更新
- 2. 初心者がUE4でルービックキューブ風なものを作って強化学習用のライブラリにしたい #5
- 3. Ubuntu18.04でpip install mysqlclientするもエラーが出る場合の解決方法
- 4. pip3でTypeエラーが出るようになった時の対処
- 5. Discordのテキストチャットからマイクラサーバにコマンドを差し込む
- 6. 是丈は心得おくべし:AWS
- 7. DjangoをCloud BuildでApp Engineに自動デプロイするときの、cloudbuild.yamlの例
- 8. 【画像処理】不透明部分からマスク用の白黒画像を生成するスクリプト
- 9. 書類”間”の文字の揺らぎをチェックする
- 10. Python3 + MeCab + CaboCha めも
- 11. 【Python】リストの値を順番に出力する方法
- 12. 【Python】リストから重複している値を削除する方法
- 13. 【Python】文字列を1文字ずつのリストにする方法
- 14. Pandas(Series,DataFrame)基礎まとめ
- 15. 【Python】10進数を2進数、8進数、16進数に変換する
- 16. 【Python】文字列を反転させる方法
- 17. 【Python】文字列中に変数展開する方法
- 18. PythonでPDF結合GUIを作る その3
- 19. 【Python3 / ElementTree】 XPath形式で上手くアクセスできない時はXMLの階層をよく確認しましょう…(自戒)
- 20. [Python]タイムスタンプ変更アプリを作ってみた
pythonの勉強 update()による辞書の更新
#update()だよ。2つの辞書を用意して1つの辞書にすることができるよ
“`Python
members = {‘a’:1,’b’:2,’c’:3,’d’:4}
others = {‘e’:5,’f’:6}members.update(others) # 変数membersの後ろに変数othersを更新するよ
print(members)
“`
“`
{‘a’: 1, ‘b’: 2, ‘c’: 3, ‘d’: 4, ‘e’: 5, ‘f’: 6}
“`“`Python
others.update(members) # 変数othersの後ろに変数membersを更新するよ
print(others)
“`“`
{‘e’: 5, ‘f’: 6, ‘a’: 1, ‘b’: 2, ‘c’: 3, ‘d’: 4}
“`##もし、2つの辞書に共通のキーを持っていたら・・・
“`Python
members = {‘a’:1,’b’:2,’c’:3,’d’:4} d=4
others = {‘e’:5,’d’:6} d=6
初心者がUE4でルービックキューブ風なものを作って強化学習用のライブラリにしたい #5
前回に引き続き初心者がUE4を絡めたPythonライブラリを作れないか色々進めていく記事です(ほぼ自分のための備忘録としての面が強い・・)。
最初 : [#1](https://qiita.com/simonritchie/items/e8d84c2941b5bd2862f5)
前回 : [#4](https://qiita.com/simonritchie/items/585d4fd7cb2de11607a4)# アニメーション付きの回転の処理をPythonと繋いでいく
前の記事で即時の回転の関数をPythonと繋いでいきましたが、次はアニメーション付きのものも繋いでいきます。
まずはブループリント側の作業から進めます。
大体は即時の回転のBPと同じ感じです。ほぼほぼ必要なものは用意されているので、キューブに対してループを回して、対象の回転対象のキューブに対して回転のフラグを立てるだけです。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/228778/5805b245-01
Ubuntu18.04でpip install mysqlclientするもエラーが出る場合の解決方法
AWS EC2のUbuntu環境でmysqlを導入していたら、PythonとMySQLを接続するためのパッケージインストールでエラーが出まくったので色々調べて解決。
結論から言うと、CentOS同様にMySQLサーバだけでなく開発ツールを導入しなければいけないようです。
“`
$ sudo apt-get install -y mysql-server
$ sudo apt-get install -y libmysqlclient-dev #←これ
“`“`
$ pip install mysqlclient
“`これでいけました。
## その他installしたけど関係あるかわからないもの
“`
$ sudo apt-get install -y default-libmysqlclient-dev
“`## 環境
OS: Ubuntu18.04
pip 19.3.1
pip3でTypeエラーが出るようになった時の対処
Mac にて pip3 のアップデートを行ったところ、以下のエラーが出るようになった。
“`
Traceback (most recent call last):
File “/Library/Developer/CommandLineTools/usr/bin/pip3”, line 10, in
sys.exit(main())
TypeError: ‘module’ object is not callable
“`直前に
“`
xcode-select –install
“`は実施済だったため別の対処方法を探したところ、同様の事象で stack overflow に [Problems using zsh with Catalina, Python/Python3, pip/pip3, PATH, zshrc, etc](https://stackoverflow.com/questions/58423609/problems-using-zsh-with-catalina-python-python3-pip-pip3
Discordのテキストチャットからマイクラサーバにコマンドを差し込む
# := screenで起動しているプログラムにコマンドを差し込む
## やりたいこと
– マイクラプレイヤーの方であれば、「一緒に遊んでいた人が寝落ちてしまって、ゲーム内で夜を明かせない」というとき、その人をマルチサーバから一時退出させたいといった場面が稀によくあるかと思う
– マイクラはサーバコンソールから直接コマンドを入力すれば、operator権限の処理を実行できる
– 或いは、サーバコンソールから、 `op HOGE` とすればユーザHOGEにop権限を付与し、HOGEがゲーム内チャットでop権限の処理を実行することも可能
– op権限を持つとkickコマンドが扱えるようになる
– しかし、大人数がアクセスするワールドで参加者全員にop権限を与えるのは無謀の極み
– そこで、**特定のopコマンドのみを別インタフェースから誰でも実行できるような手段を用意したい**## 運用しているマイクラサーバの状況
– 1つのサーバで4つのワールドを同時に建てている
– それぞれのワールドをscreen内で実行し、別々のポートを開放して割り当てることで容易に並列動作が可能
– この
是丈は心得おくべし:AWS
深く後悔したことをメモしていく。
# AWSのサービスと関係するコードは、最初の1行からAWS上でユニットテストすべし
ユニットテストは手元で走らせたいのが人情だが、やってはならない。うっかり`moto`を信じた私が馬鹿だった。`moto`は何をしてもまったくエラーを返さない。
# Lambdaでは共有メモリが使えない
そのため`multiprocessing`の`Pool`と`Queue`が使えない。そのため`loky`も使えない。
[Parallel Processing on AWS Lambda with Python using Multiprocessing](https://sysadmins.co.za/parallel-processing-on-aws-lambda-with-python-using-multiprocessing/)
随時追記する予定。
DjangoをCloud BuildでApp Engineに自動デプロイするときの、cloudbuild.yamlの例
# 概要
DjangoプロジェクトをCloud BuildでApp Engineに自動デプロイできるようにする設定。
cloudbuild.yaml設定内容の、日本語の情報がなさそうなので共有します。# TL;DR
[標準的なデプロイ方法](https://cloud.google.com/source-repositories/docs/quickstart-triggering-builds-with-source-repositories)を実施+以下のcloudbuild.yamlファイルを使用します。
“` yaml:cloudbuild.yaml
steps:
# collectstatic用のdjangoを走らせるための環境を作る
– name: ‘python:3’
entrypoint: python3
args: [‘-m’, ‘venv’, ‘/workspace/venv’]
– name: ‘python:3’
entrypoint: “/workspace/venv/bin/pip”
args: [‘install’, ‘-r’,
【画像処理】不透明部分からマスク用の白黒画像を生成するスクリプト
# できること
Before
After
# 嬉しさ
3DCGなどのテクスチャを生成するのが楽になる# Source
https://github.com/minato-eigenport/toys/blob/master/genmask.py“`genmask.py
import numpy as np
import os
import refrom PIL import Image
f
書類”間”の文字の揺らぎをチェックする
Wordファイル内であれば文字の揺らぎ(”ドライバー”と”ドライバ”等)があればアラートがでますが、複数のExcel、Wordファイルの記載をまとめてチェックする方法が無かったので作ってみました。同じディレクトリにあるExcel、Wordファイルを読み込んで一斉に文字の揺らぎのチェックをかけます。複数のファイルからなる申請書とかを作りたいときに役立てばよいなと思ってます。(といいつつ、janomeを使いたかったというスケベ心がチラホラ)
#1.使用モジュール一覧。
“`python:module.py
from janome.tokenizer import Tokenizer
from janome.analyzer import Analyzer
from janome.tokenfilter import *
import sys
from collections import Counter
import pandas as pd
import docx2txt
import numpy as np
import os
import openpyxl
import op
Python3 + MeCab + CaboCha めも
# 環境構築
## `#include`の中のファイルがないって言われる
**Command Line Tools for Xcode 9.4.1.をダウンロードする**
https://developer.apple.com/download/more/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/430849/3b4525d8-d750-8b63-3647-5039d8b4a40f.png)MacのCommand Line Toolsのバージョンが原因
バージョン10?以降(定かでない)だと、includeフォルダがないことが原因らしい
StackOverflowを検索すると、PCに入っているCommand Line Toolsのバージョンをそのままにして、includeフォルダを追加でインストールする方法とかが書いてあるけど、わりとめんどくさい## mecab コマンドを打っても何も動かない
**コマンドを打った後につづけて解析したい文章も入力しないと何も出てこな
【Python】リストの値を順番に出力する方法
## サンプルコード
“`python
l = [1, 2, 3, 4, 5]print(*l, sep=’\n’)
# => 1
# 2
# 3
# 4
# 5“`
## 参考
– [【Python】リスト要素を並べて表示する|東雲あずら|note](https://note.mu/azura35/n/ndf3194de0a74)
【Python】リストから重複している値を削除する方法
## サンプルコード
“`python
some_list = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]# setに変換してからlistに変換し直す
uniq_list = list(set(some_list))print(uniq_list)
# => [1, 2, 3, 4, 5]
“`## 参考
– [Pythonでリスト(配列)から重複した要素を削除・抽出 \| note\.nkmk\.me](https://note.nkmk.me/python-list-unique-duplicate/)
【Python】文字列を1文字ずつのリストにする方法
## サンプルコード
`list`の引数に渡すだけ。
“`python
chars = list(‘aiueo’)print(chars)
# => [‘a’, ‘i’, ‘u’, ‘e’, ‘o’]
“`## 参考
– [python、rubyで文字列を1文字ずつのリストにする \- 雑多なメモ置き場](http://y0m0r.hateblo.jp/entry/20130601/1370077334)
Pandas(Series,DataFrame)基礎まとめ
#Pandas(Series,DataFrame)基礎まとめ
機械学習の基礎を勉強している中でPandasを学ぶ機会があったので、まとめてみました。
自分のメモ用的な面が強いです。
これからさらに勉強したらどんどん追加していきます。
間違っているところや、これも使うんじゃ、、??みたいなのがあれば教えていただきたいです!!##Series
###Seriesの作り方1
“`python:qiita.py
import pandas as pdfruits = {‘orange’:2,’banana’:3}
print(pd.Series(fruits))“””
output
————
orange 2
banana 3
dtype: int64
————
“””
“`
###Seriesの作り方2
“`python:qiita.py
import pandas as pdindex = [‘apple’, ‘orange’, ‘banana’,’strawberry’, ‘kiwifruit’]
data = [10,
【Python】10進数を2進数、8進数、16進数に変換する
## サンプルコード
`bin`, `oct`, `hex`を使用する。
“`python
num = 100# 2進数に変換
bin(num) # => ‘0b1100100’# 8進数に変換
oct(num) # => ‘0o144’# 16進数に変換
hex(num) # => ‘0x64’
“`もし`0b`, `0o`, `0x`のようなプレフィックスを除きたい場合は`[2:]`を末尾に追加すればいい。
“`python
num = 100# 2進数に変換
bin(num)[2:] # => ‘1100100’# 8進数に変換
oct(num)[2:] # => ‘144’# 16進数に変換
hex(num)[2:] # => ’64’
“`## 参考
– [python \- How can I make \`bin\(30\)\` return \`00011110\` instead of \`0b11110\`? \- Stack Overflow](https://stackoverflow.com/questions/
【Python】文字列を反転させる方法
## サンプルコード
“`python
# 反転させたい文字列
str = ‘12345’# 文字列[::-1]とすれば反転できる
rslt = str[::-1]
print(rslt)
# => ‘54321’
“`## 参考
– [Python で文字列反転 \- 似非プログラマの覚え書き](https://redcat-prog.hatenadiary.org/entry/20111104/1320395840)
【Python】文字列中に変数展開する方法
## 条件
Python3.6以上
## サンプルコード
f-stringsを使用する。
“`python
first_name = ‘Taro’
full_name = f’Tanaka {first_name}’print(full_name)
# => ‘Tanaka Taro’
“`# 参考
– [Python3\.6 から追加された文法機能 \- Qiita](https://qiita.com/shirakiya/items/2767b30fd4f9c05d930b)
PythonでPDF結合GUIを作る その3
最終回その3です
[その1 TkinterでUI作成](https://qiita.com/you3feet/items/ba4f0c05d236101fe44d)
[その2 PyPDF2でPDF操作](https://qiita.com/you3feet/items/ac734d8e7a52a20b8eb9)
**その3 pyinstallerでexe化+アイコンを付ける**# アイコンを探す
フリーのアイコンを[iconfinder](https://www.iconfinder.com/)で探します
python(ガラガラヘビ)というよりcobra(コブラ)?
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/447145/5873ba4d-cd27-e612-3066-e41528b46b0e.png)# アイコンをウィンドウに埋め込み
下の▼を押すとpngのbase64 encodeが表示されるのでコピーして以下の通りコードに埋め込みます
(横に長くてすいません)
【Python3 / ElementTree】 XPath形式で上手くアクセスできない時はXMLの階層をよく確認しましょう…(自戒)
~~ネット上のチュートリアルを調べてもなんとも上手くいかなかったので備忘として投稿します。~~
【2019/11/22追記】
お恥ずかしい限りなのですが、本件は私の勘違いが原因だったようで最初に提示していた問題はそもそも起こらないものでした。。。
自戒の意味も合わせて「.//」周りの挙動は多少参考にもなると思われるため、記事は残します。# 事の起こり
python3でXML(文字コードはEUC-JP)を扱う機会があり、その対応をしていたところ“`xml:test.xml(本来扱っていたファイルはタグ数もこれより多く、属性値等も多数ある状況でした)
aaa
bbb
ccc
・
(中略)
・
・
(中略)
・
“`
要素へのアクセス方法としては下記が挙げられますが“`python:test.py
import x
[Python]タイムスタンプ変更アプリを作ってみた
##はじめに
windows,python3,tkinterを用いて、ファイルのタイムスタンプを変更するGUIアプリを作ってみた。
タイムスタンプとは、ファイルの作成日時・更新日時・アクセス日時を表すもので、ファイルのプロパティから確認できる。
タイムスタンプを変更する利点としては「ファイル作成日時の隠蔽」がある。日記などのように写真を連続投稿する場合、ファイル作成日時から撮影場所を推定される可能性があるため、撮影場所を知られたくないときにタイムスタンプの変更が有効な手段となる。
個人的な背景としては、父が山を登ったときに希少な植物を撮影することが多く、その写真を日記として投稿している。しかし希少であるため下手に場所を知られて他人に荒らされたくなく、できる限り写真から撮影場所を知られたくないようにしたい。そんな要望をきっかけに、勉強も兼ねて開発を始めた。
##アプリの概要
アプリの全体図を以下に示す。
![タイムスタンプ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/350483/2a67