- 1. PythonでPDFファイルを統合する
- 2. Beautifulsoupでtableをjsonで取得するもっともシンプルな方法
- 3. Windows10 + VSCodeでflake8とautopep8を使う
- 4. AtCoder ABC177 A-Dをpythonで
- 5. AtCoder ABC176 A-Dをpythonで
- 6. pythonでキーボード・マウス操作を自動化して日常業務を効率化【RPA】
- 7. conda update のオプション -n の引数に入れる環境名について
- 8. Python – 簡易セキュリティーソフト
- 9. Pythonで二分探索を書く
- 10. Typerはいいぞ
- 11. 勉強:話者認識
- 12. pythonでフォルダ作成・ファイル移動,圧縮,削除の操作
- 13. スコープ厨のお前らならば余裕で実行できるね〜♪
- 14. 【Python】Pythonicなコードの書き方?
- 15. [blender 2.8]クロスシミュレーションされた布の頂点を動的に制御する方法
- 16. AzureのFaceを使ってリアルタイム感情分析をしてみた
- 17. Pythonのunittestで指定ケースを除外する
- 18. scikit-learn の使い方 (その4)
- 19. TF2.1でGPUが認識されているのにcudnnでエラー / Could not create cudnn handle: CUDNN_STATUS_ALLOC_FAILED
- 20. Docker環境でDjangoのバージョンを指定してインストール
PythonでPDFファイルを統合する
## はじめに
Pythonの基本文法を勉強するために、複数のPDFファイルを1つのPDFファイルに統合するプログラムを書きました。PDFファイルの結合・書き込みには[PyPDF2](https://pythonhosted.org/PyPDF2/)を使用しています。## PyPDF2をインストール
pipを使用してPyPDF2をインストールします。“`
> pip install PyPDF2
“`## インポート
PDFファイルを統合するために`PdfFileMerger`を、フォルダ指定時にPDFファイルを自動的に見つけるために`os`, `glob`をインポートしておきます。“`python:merge.py(1)
from PyPDF2 import PdfFileMerger
import os
import glob
“`## 初期化
統合するための初期化を行います。“`python:merge.py(2)
def main():
merger = PdfFileMerger()merge_files = []
“`
Beautifulsoupでtableをjsonで取得するもっともシンプルな方法
# 環境
beautifulsoup4==4.9.1# やり方
“`python3
output_json = {}
table = soup.find(“table”, class_=”table_class foo bar”)
rows = table.findAll(“tr”)for row in rows:
json[row.find(“td”).text.strip()] = row.find(“th”).text.strip()print(output_json)
“`これだけ?
みなさんがやる時はtableの`class_`に取得したいテーブルのクラスを書くだけ# 参考
https://qiita.com/gaborotta/items/328d01355cd3e12bd070
Windows10 + VSCodeでflake8とautopep8を使う
VSCodeのウィザードに従うとコケるので手動でインストールや設定を行う
## 導入の流れ
1. `pip`にPATHを通す
1. `%USERPROFILE%\AppData\Local\Programs\Python\Python38-32\Scripts`
2. cmdを立ち上げflake8とautopep8を入れる
1. `pip install flake8`
3. VSCodeを立ち上げ適当なPythonファイルを開き、LinterとFormatterを問われたら設定する
1. Linterは設定ファイルにこれ書けば多分通る
1. `”python.linting.pylintPath”: “flake8”,`## flake8のエラーを無視する方法
正直どうしようもないケースもあると思う
– VSCodeの設定に以下を追記。エラーはカンマ区切りで増やせる
“`
“python.linting.flake8Args”: [
“–ignore=E722”,
],
“`
AtCoder ABC177 A-Dをpythonで
#AtCoder ABC177 A-D問題までpythonで解いてみた.
AtCoder ABC177に参加したのでその記録として投稿しようと思います.
##A問題
高橋君は青木君と待ち合わせをしています。
待ち合わせ場所は高橋君の家からDメートル離れた地点であり、待ち合わせの時刻はT分後です。
高橋君は今から家を出発し、分速Sメートルで待ち合わせ場所までまっすぐ移動します。
待ち合わせに間に合うでしょうか?
###考えたこと
分速Sメートルで移動できる高橋君がT分で移動できる最大距離はS*Tです.
この値とDを比較すれば良いです.(不等号を間違えて1WA出しました())“`Python
d, t, s = map(int, input().split())
if s*t >= d:
print(“Yes”)
else:
print(“No”)
“`
##B問題
2つの文字列S,Tが与えられます。TがSの部分文字列となるように、Sのいくつかの文字を書き換えます。
少なくとも何文字書き換える必要がありますか?
##考えたこと
len(S)>=len(T)より文字列
AtCoder ABC176 A-Dをpythonで
#AtCoder ABC176 A-D問題までpythonで解いてみた.
AtCoder ABC176に参加したのでその記録として投稿しようと思います.
##A問題
高橋君はたこ焼きが好きです。
たこ焼き器を使うと、1度に最大で X個のたこ焼きを作ることができます。
これにかかる時間は作る個数によらずT分です。N個のたこ焼きを作るためには何分必要ですか?
###考えたこと
N個のたこ焼きを作るためにX個作る作業を何回行う必要があるか考えました.
N%X == 0 の時に注意してN//Xを考えれば良いです.“`Python
n, x, t = map(int, input().split())cnt = n//x
if n%x == 0:
print(cnt*t)
else:
cnt += 1
print(cnt*t)
“`
##B問題
整数Nが9の倍数であることと、Nを十進法で表したときの各桁の数の和が9の倍数であることは同値です。
Nが9の倍数であるか判定してください。
0 < N < 10**(200000) ###考えたこと Nを文字列として
pythonでキーボード・マウス操作を自動化して日常業務を効率化【RPA】
#今回で習得できること
pythonでキーボード操作やマウス操作を自動化。
「艦〇れ」だろうが「城プ〇」だろうが周回を自動化できる。
高いライセンス料金でRPAツールを導入しなくても日常業務が効率化できる。
(実際に周回自動化をして見ようかと思ったが規約とか厄介なのでおとなしくやめておく)
~~リモートワークで離席しててもログイン状態を保てるので気付かれることなく・・・~~#操作したい画面のサイズを取得
pythonでキーボードやマウス操作を自動化するためのパッケージといえばpyautogui。
“`python
import pyautogui as pa
pa.size()
“`“`
Size(width=1920, height=1200)
“`確認しやすさのためにtimeを使って動作の前に一旦停止させる。
自動操作の入力が早すぎて画面処理やブラウザが反応に追いつけない時があるので都合に合わせてtimeを使っていく。#原点からのマウスの移動
画面左上を(0,0)の座標として位置操作を行う。
moveToで(0,0)から指定の位
conda update のオプション -n の引数に入れる環境名について
[この記事](https://qiita.com/sug4r/items/976e4be79848eda6f49f)にある`conda update -n base -c defaults conda` のbaseの部分にはconda仮想環境名が入ることになっているが、ここではデフォルトconda仮想環境名であるbaseが入っている。
この部分を、conda createで作った環境名(名前はenv1とする)とかにしたコマンド`conda update -n env1 -c defaults conda`とすると
“`
PackageNotInstalledError: Package is not installed in prefix.
prefix: C:\Users\username\anaconda3\envs\env1
package name: conda
“`と出てしまう。
デフォルトconda仮想環境名baseにしたら成功した。
デフォルトconda仮想環境名baseでないと、いけないようだ。condaパッケージがあるか調べてみる。
調べたい
Python – 簡易セキュリティーソフト
#はじめに
早速ですが、
皆さんはセキュリティーソフトを作ってみたいと思ったことはありますか?
セキュリティーソフトは、私たちのパソコンを守ってくれるとても良いものです。今回ご紹介する簡易セキュリティーソフトは、
ウイルスデータが入っているフォルダーからデータを読み取り、
もしスキャン対象のファイルにそのウイルスのデータが含まれていたら、通知してくれます。
インストーラーとソースコードは、GoogleDriveに入れてありますので是非ご確認ください。#ツリー
ディレクトリ内のファイル配置です。
|SecuritySoftStorn
|-dist
|—test_virus
|—–GetPassword.py
|—__init__.py
|—log.txt
|—ロゴ.png
|—installer.py
|—About.txt
#ソースコード
[ダウンロード](https://drive.google.com/file/d/1nVu_4srKOLoUufs38-iaU-s_0q9FuHpg/view?usp=sharing)
#もっと便利に使うために
Pythonで二分探索を書く
# TL;DR
– 基礎的な点でありますが、しっかり頭に入れておくためPythonで二分探索のコードを書いたり説明をまとめたりしていきます。
– 勉強のため自前でコードを書いて進めます(二分探索用の標準モジュールなどは使わずに)。
– 元々デザイン方面の学校卒なので、コンピューターサイエンス方面で知識的に雑な点などはご容赦ください。# つかうもの
– Python 3.8.5
– VS Code# 二分探索とは
二分探索とはソート済みの配列に対する値の検索のアルゴリズムの一つです。
バイナリサーチ(binary search)とも呼ばれます。検索対象の配列がソート済みという条件が付きますが、通常の検索よりも対象のリストが巨大になっても検索が遅くなりにくいという性質を持ちます。
方法としては、まずリストの中央に位置している値を取得し、その中央の値が検索対象の値と比べて大きいのか小さいのかを比較します。
検索対象の値が配列の中央の値よりも小さい場合には、今度は左端から中央の値の手前の範囲に配列の範囲を絞り込みます。
逆に検索対象の値が中央の値よりも大きい場合には今度
Typerはいいぞ
# TL;DR
### Typer最高!
###今すぐ“`pip install typer“`をしよう!Typerの使い方だけ見たい場合は[こちら](#typerを使う)
# 対象読者
– これから初めてcliツールの作成をする方
– argparseのalternativeを探している方
– argparseにどこか不満を感じている方# Example Codeについて
皆さんはcliツール作成と聞いて何を思い浮かべるのでしょうか?
例として挙げるならば、入力自動化ツール、APIコールするだけのツール、パブリッククラウドの設定更新ツールなど様々なものがあると思います。
本記事では、実務でも役に立って欲しいとの観点から、初心者ソフトウェアエンジニアが業務として書きがち[要出典]な[Beam Pipeline](https://beam.apache.org/releases/pydoc/2.22.0/)を例として取り上げます。# Command Line Tool開発のお気持ち
そもそも、お気持ちとしてどのようなツールをどういう風に開発したいのでしょうか?
私は
勉強:話者認識
# 概要
paiza の話者認識について勉強。理解したことを記載する。
https://paiza.jp/works/ai_ml/primer/ml-challenge2
まだ完全には理解できていないので、間違いがあるかも?
判明次第修正予定。# 前提として
## 音とは
Wikipediaから引用
> 物理学においては、音とは物体を通して縦波として伝わる力学的エネルギーの変動のことであり、波動としての特徴(周波数・波長・周期・振幅・速度など)を持つ音波として表せる。## 音の高低
音の高さは周波数によって決まる。
音が低い場合は周波数が低く、高い場合は周波数が高い。# 波の分解
周期性を持った波は、単純な波に分解できる。
ex. フーリエ変換# 使用するライブラリ
## librosa
音楽、音の分析に使うライブラリ。
https://librosa.github.io/librosa/## sklearn
SVMを使うため使用する。Wikipediaから引用
> サポートベクターマシン(英: support vector machine, SVM)は、教師あ
pythonでフォルダ作成・ファイル移動,圧縮,削除の操作
#フォルダ作成makedirs
exist_okでフォルダが存在している場合には作らない。
指定しなければエラー。“`python
import os
dir_path = os.path.join(‘C:\\Users\\username\\Desktop’,’00’)
os.chdir(dir_path)os.makedirs(‘new_made’, exist_ok=True)
dir_path_sub_folder = os.path.join(dir_path,’new_made’)
“`#一旦操作するファイルを作成
“`python
from sklearn.datasets import load_iris
import pandas as pdiris = load_iris()
irisDF = pd.DataFrame(iris.data)
csv_name=’iris.csv’irisDF.to_csv(csv_name,header=False,index=False)
“`#フォルダ内のファイル名を取得
“`pyt
スコープ厨のお前らならば余裕で実行できるね〜♪
## その1
“`python
a: (a := lambda: print(“hello”))() = 1
“`## その2
“`python
[f() for i in range(10) for f in [lambda: print(i)]]“`
## その3
“`python
i = 2def f() -> (g := lambda: print(i)):
i = 1
g()f()
“`
## その4
“`python
def f(_: (x := lambda func: lambda arg: func(arg + 1)) = 1):
@x
def a(b):
print(b)a(1)
f()
“`
【Python】Pythonicなコードの書き方?
# Pythonでコードを書くときのGood/Badプラクティス
こちらの記事は、DuomlyによりDev.to上で公開された『 Good and Bad Practices of Coding in Python 』の邦訳版です(原著者から許可を得た上での公開です)
元記事:[Good and Bad Practices of Coding in Python](https://dev.to/duomly/the-best-practices-of-coding-in-python-and-what-to-avoid-3c65/comments)
(以下、翻訳した本文)
—
![Cover image for Good and Bad Practices of Coding in Python](https://res.cloudinary.com/practicaldev/image/fetch/s–oloNCKzi–/c_imagga_scale,f_auto,fl_progressive,h_420,q_auto,w_1000/https://thepract
[blender 2.8]クロスシミュレーションされた布の頂点を動的に制御する方法
# 記事のまとめ
* クロスシミュレーションがついているメッシュの頂点を制御する方法を紹介
– 制御したいときだけ有効にできるような方法
– HookモディファイアとVertex Weight Mixモディファイアを利用
* 面倒な初期設定を行うためのスクリプトも紹介# やりたいこと
オブジェクトに被さった布をつまみ上げたり、お姫様キャラのモデルに挨拶をさせるときにスカートを摘まみ上げたり、**「布をつまみあげる」操作をしたい**ケースって結構あると思います。
ただ基本的には常に頂点を制御したいわけではなく、**布をつまみ上げている時だけ制御して、他のフレームでは普通にクロスシミュレーションに従って欲しい**わけです。
## やりたいことの実現例
要は、こちらの動画のようなことをやりたいわけです。
![hoge.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560031/20f2da46-d530-aaeb-bb3f-628310d41b57.gif)
こちらの例では、クロスシ
AzureのFaceを使ってリアルタイム感情分析をしてみた
#背景
Azure Cognitive Services の Face を使うことで、顔写真から感情分析できるようです。
web会議やzoom飲みのときに自分がどんな感情でいるかを可視化してみたいと思い、PCのwebカメラで撮影した自分の顔から、リアルタイム感情分析を行ってみました。
>Microsoft Face紹介ページ:
>https://azure.microsoft.com/ja-jp/services/cognitive-services/face/#features#実行結果
今回行った感情分析はこんな感じで出力されます。
PCカメラで取得した自分の顔にFaceで感情分析をかけています。(様々な表情を作ってみました笑)
![Figure_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193530/74d74cca-84e4-c63c-fca6-9d024d61ba44.png)
Faceによる感情分析は、
・anger:怒り
・contempt:軽蔑
・disgust:嫌悪
・fe
Pythonのunittestで指定ケースを除外する
## まとめ
* unittest で discover する対象クラスを限定する手段を書きます。
* 前半で、どのようなときに必要になるか、も書きます。
* 後半で、コードを書きます。
* load_tests() のコード例があります。## はじめに
現実世界で目的地にたどり着く交通手段が徒歩、車、公共交通機関と複数あっても到達点は目的地の1つでありながら、それぞれの手段に料金、時間、事故による影響をどれだけ受けうるか、などメリットやデメリットがあります。
コードを書く際も同様に、同じゴールを達成するために複数の手段があることがあります。
たとえば、ツリーの探索において、深さ優先・幅優先など複数の探索手段があり、メリット・デメリットがあります。ソートのアルゴリズムも同様です。ちょっと言いすぎですが、デザインパターンの Strategy のようなケースにおいては類似のケースが発生しえます。
場合によっては深さ優先、場合によっては幅優先、と選択するようなケースでは、コード内にそれぞれのテストケースを置くことになり、コードの中身を意識しないブラックボックスなテストを
scikit-learn の使い方 (その4)
[House Prices: Advanced Regression Techniques](https://www.kaggle.com/c/house-prices-advanced-regression-techniques) で 試してみました。
1) ライブラリーの読み込み
2) csv の 読み込み
3) model の作成 と 予測
4) csv の出力
の4ステップです。1) ライブラリーの読み込み
“`py:[1]
import numpy as np
import pandas as pdfrom sklearn.ensemble import RandomForestRegressor
“`2) csv の 読み込み
“`py:[2]
train_df=pd.read_csv(‘../input/house-prices-advanced-regression-techniques/train.csv’)test_df=pd.read_csv(‘../input/house-prices-advanced-regression-tec
TF2.1でGPUが認識されているのにcudnnでエラー / Could not create cudnn handle: CUDNN_STATUS_ALLOC_FAILED
## 環境
Windows10
python3.7.4
tensorflow2.1.0
cuda10.2
cudnn7.6.5# はじめに
GPUは認識されている“`
from tensorflow.python.client import device_lib
device_lib.list_local_devices()# 出力結果
[name: “/device:CPU:0”
device_type: “CPU”
memory_limit: 268435456
locality {
}
incarnation: 12939604985444578121
, name: “/device:GPU:0”
device_type: “GPU”
memory_limit: 4990763008
locality {
bus_id: 1
links {
}
}
incarnation: 15893135237303968832
physical_device_desc: “device: 0, name: GeForce GTX 1660 SUPER, pci
Docker環境でDjangoのバージョンを指定してインストール
Docker環境でDjangoのバージョン指定してインストールしてみたのでやったことをメモしておきます
pythonのバージョンが3.8.5に対してDjangoのバージョンが1.11だったんだけどpythonのバージョン対応してないっぽかったのでDjangoのバージョンを上げることにしました。(参考画像は下記)![スクリーンショット 2020-09-05 22.48.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/544334/ec8c1818-6f0f-c36e-7a6b-71cf330d24ee.png)
## バージョン対応の参考資料
https://docs.djangoproject.com/ja/3.1/faq/install/#what-python-version-can-i-use-with-django# やったこと
## requirements.txtを修正
Dockerfile上の`RUN pip install -r requirements.txt` にて`r