Python3関連のことを調べてみた2021年07月14日

Python3関連のことを調べてみた2021年07月14日
目次

インスタをPythonで自動化してみる

#目標
インスタのアカウント育成を自動化したい

#インスタ 自動化 Python
これで検索するとこちらの記事が出てきました。

https://oretano.com/instagram-python-like

自動でいいねしてくれるプログラムです
今回はこれを元に

– 自動いいね(ちょっと改良)
– 自動フォロー
– フォロバされてない人の自動フォロー解除
– 自動ブロック

を作っていこうと思います。

必要な準備は上記のサイトにすべて記載されてるのでこちらには書きません

#自動いいね(ちょっと変えました)

“`
from selenium import webdriver
from selenium.common.exceptions import WebDriverException
from selenium.webdriver.common.action_chains import ActionChains
import time
import random, sys

def login():
driver.get(‘https://www.inst

元記事を表示

`python3 -m pip install PyQt5`実行時にエラー

`python3 -m pip install PyQt5`実行時にエラー

“`
$ python3 -m pip install PyQt5
Collecting pyqt5
Using cached https://files.pythonhosted.org/packages/8e/a4/d5e4bf99dd50134c88b95e926d7b81aad2473b47fde5e3e4eac2c69a8942/PyQt5-5.15.4.tar.gz
Installing build dependencies … done
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File ““, line 1, in
File “/home/ubuntu/.pyenv/versions/3.6.9/lib/python3.6/tokenize.py”, line 452,

元記事を表示

ドローン・プログラミングでTelloを無人自動飛行してみた(Python3)

__[前回の記事](https://qiita.com/electronics_diy721/items/f9f4b1f87e83801154e9)__の続編です。

###全体の構成

![スクリーンショット 2021-07-13 16.03.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1754134/74306c50-bbb4-4584-0fab-d4f31dcbc147.png)

前回は、MacbookのTerminalに、人間が手入力で”takeoff”, “forward 100”, ・・・, “land”と、Tello APIで提供されているコマンドをひとつひとつ入力していました。

MacbookからWifi通信でTelloに命令を送れるようになったものの、これだと、同じくWifi通信で、iPhone/ iPadの画面に表示されたバーチャル・ジョイスティックで操作した方が、操作しやすいです。

そこで今回は、一連の飛行動作を、あらかじめスクリプトに記述(列挙)して、人間は手放し

元記事を表示

Django でモデルフィールドの値を暗号化してくれる EncryptedField を作成する方法

##はじめに
業務でDjangoで作ったシステムのデータを暗号化してDBで保管するという
タスクに携わったので、その方法を記事にしたいと思います。

###この記事で触れること
* Modelの値を暗号化してDBに保存してくれるEncryptedFieldの作り方
* 既存のデータの置き換えについて
* マイグレーションの挙動について

###この記事で触れないこと
* Pythonで暗号化をする方法
* saveメソッドを継承して暗号化をする方法

###環境
Django3.0.1
python3.9
暗号化ライブラリ: PyCryptodome

##結論と説明
こちらがメインのコードです。
encryption decryptionは暗号化・複合化の関数となります。

“`python:myfield.py
class EncryptedFieldMixin:
“””
Djangoのモデルフィールドを、DB登録時に暗号化するように
変更するMixin
戻り値が str のため、models.BinaryFieldなどには使えない
“”

元記事を表示

Python ランダムな数列を作成する方法。重複有無、全列挙

## 指定した範囲を列挙する

rangeを使えば、範囲の数列を作ることができます。

“`py
lst = list(range(0, 10))
print(*lst)
# 0 1 2 3 4 5 6 7 8 9
“`

## 指定した範囲から、重複のないランダムな数列

random.sampleを使用して、重複のないランダムな数列を作れます。

“`py
import random

lst = list(range(0, 10))
print(*random.sample(lst, len(lst)))
# 8 9 7 6 0 3 1 2 5 4

# 別の書き方
lstlen = 10
print(*random.sample(list(range(0, 10)), lstlen))
“`

## 指定した範囲から、重複ありでランダムな数列

“`py
import random

lst = list(range(0, 10))
print(*random.choices(lst, k=len(lst)))
# 2 4 7 5 6 1 7 9 3 2

# 別の

元記事を表示

Pythonで複数のDataFrameをExcelにシート別にfor文を使って出力してみる

### DataFrameが複数存在した場合にエクセルにシート別で出力できるのかなという疑問から

– VBAしか触ったことがなかったのですが、多岐に自動化できるようになってみたい思いからpythonプログラミングの独学を始めてみて3か月ちょっとの者です。
– コロナ関連の各自治体が出している報告pdfをtabulaで取得してdfに格納していくことに楽しさを感じたので ついでにExcelにシートごとに出力する方法を調べてみたいなと思いながらも調べ方が悪く適当な方法を見つけられずにいましたがもう一度資料参考をしながら作成してみたところうまく出力されたので自分の覚書も兼ねて投稿します。

##### 環境
– windows10 pro 64
– python 3.9
– tabula-py 2.2.0
– pandas 1.3.0
– jupyter-lab 3.0.13
– Excel2019

### コード

“`python

import pandas as pd

#あとでファイル管理がしやすいように変数日付4桁を作成
datestr = input

元記事を表示

MacBookのTerminalに、Telloの操縦コマンドを手入力して遠隔操作してみた

###参考にしたサイト

– [縣 佳男 (株式会社日本システム技研) 「Pythonからドローンを操作してみる話。」](https://www.wantedly.com/companies/jsl2/post_articles/184669#_=_)

###全体の構成

![スクリーンショット 2021-07-12 14.53.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1754134/b43ae4ad-6908-6217-eaec-d37f571d0ca0.png)

####( ① TelloとMacbookとのWifi疎通確認 )

– Wifi親機(Host): Tello本体 (※)
※ Tello本体内には、Wifiルータが標準仕様として内蔵されている

– Wifi子機(Client): MacBook
– MacBookのWifi接続先一覧から、Telloのアクセスポイント(AP ※)を探して、選択。
※ Tello内蔵のWifi APの(local) IPアドレスは、$

元記事を表示

【AtCoder】ABC209をPython3で解説

ABC209の解説。

https://atcoder.jp/contests/abc209

## A – Counting
### 解説
$A$以上かつ$B$以下の整数はいくつあるか。

そもそも$A$が$B$よりも大きかったら、満たされる数がないので$0$を出力。

$A$以上かつ$B$以下なら、整数の個数は、$B$から$A$を引いて$1$を引いた数。

### コード
“`python
a, b = map(int, input().split())

if a > b:
print(0)
else:
print(b-a+1)
“`

## B – Can you buy them all?
### 解説
所持金$X$円で、$N$個の商品を買うことができるか。なお、$A_i$で$i$が偶数のときは、1円引きで商品が買えるものとする。

偶数のときに1円引きされるので、$N$個の商品の合計金額から、偶数の数ぶん1円引いてやれば良い。

### コード
“`python
n, x = map(int, input().split())

alist = lis

元記事を表示

[Python3] Apple Silicon M1 にてgrpcioのインストール時にエラーが発生する問題の解決

## 事象

“`bash
pip install grpcio
“`

## エラーログ

“`python
clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -D_WIN32_WINNT=1536 -DOPENSSL_NO_ASM=1 -DGPR_BACKWARDS_COMPATIBILITY_MODE=1 -DHAVE_CONFIG_H=1 -DGRPC_ENABLE_FORK_SUPPORT=1 -DPyMODINIT_FUNC=extern “C” __attribute__((visibility (“default”))) PyObject* -DGRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK=1 -Isrc/python/grpcio -Ii

元記事を表示

Twitter Botで長い文章をツイート可能ギリギリの長さに調節する

# はじめに
TwitterのBotを作っていると、ツイートしようとしたときに次のようなエラーが返ってくることがあります。

“`text
[{‘code’: 186, ‘message’: ‘Tweet needs to be a bit shorter.’}]
“`

これは、Twitterの文字制限をオーバーしている、というエラーで、
日本語では140文字、英語だと280文字までしかツイートできません。
さらに、urlは22文字として換算される、とか、まあいろいろな例外もあるのですが、
そのような解説は[他の記事](https://qiita.com/PND/items/17e87b8839c9099d2e70#url-%E6%8A%BD%E5%87%BA)に譲るとして、
実運用ではどのようにして文字数制限を回避すればよいでしょうか。

例えば、青空文庫に掲載されている、日本の名作とその書き出しをツイートするボットを開発する場合、
下の画像のように、書き出しを制限ギリギリにする方法を本記事では紹介します。

![image.png](https://qiita-image

元記事を表示

pyinstallerのメモ

## 作成するときは仮想環境で

普通に作成したらexeの実行から動き出すまで、
10秒以上かかりフリーズしたのか心配になりました。

仮想環境を作成してそのままexeファイルを作成すると
必要なライブラリのフォルダが少なくなるのか軽くなりました。

参考
https://qiita.com/plumfield56/items/3296b24fea4ea5bbbbcf

## pandasを使うときは–hidden-importオプションをつける

この記事を参考にしました。
https://stackoverflow.com/questions/47318119/no-module-named-pandas-libs-tslibs-timedeltas-in-pyinstaller

私の場合は下記のエラーが表示されました。

“`
no module error named ‘pandas._libs.tslibs.base’
“`

なのでexeファイルを作成時に下記のコマンドへ変更したら問題なく動くようになりました。

“`
pyinstaller –onedir

元記事を表示

仮想環境の作り方

何度か目のチャレンジです。
Anaconda Promptを使ってvenvで仮想環境を作っていきます。

実行環境はWindows10で、MacやLinux環境だとvenvで作られるファイル名や
仮想環境への入り方が異なるみたいです。

## 仮想環境の作成

参考の公式サイト
https://docs.python.org/ja/3/library/venv.html

まずは仮想環境を作りたいフォルダまで移動します。

“`bash:ディレクトリの移動
$ cd パス
“`

そこで仮想環境を作成します。

“`bash:envという仮想環境に必要なファイルが入ったフォルダを作成
$ python -m venv {ファイル名}

# 例
$ python -m venv env
“`

すると今いるディレクトリにenvフォルダが作成されます。
Windowsの場合は下記で仮想環境に入ります。

“`bash:仮想環境に入る
$ .\env\Scripts\activate
“`

下記の表記に変われば成功です。

“`
# 仮想環境前
(base) C:ディレクト

元記事を表示

Django REST frameworkのユニットテスト

単体テストをExcelとかに絶対に管理したくないマンなのでテストの機能が備わっているものなら是非とも使いたい。
Pythonもとい、Djangoにもしっかりテストの機能はついている。

もちろんDjangoのテストの記事なんていっぱいあるのだが、どれを真似してもなんかAPIが上手く動かない…

冷静に考えたらREST framework使っているのに普通のDjangoのテストを参考にしても上手くいかないよね。
というわけで個人的な備忘録として記載していく。別に[公式ページ](https://www.django-rest-framework.org/api-guide/testing/)をつど見るのもいいんだけど~~英語ってあんまり読みたくないじゃん~~
一応ソースも[github](https://github.com/always-reach/django_unittest)で公開中

モデルの準備

とりあえずモデルを準備

“`models.py
class SampleTable(models.Model):
name = models.Cha

元記事を表示

Django初心者がつまずいたmodelsを変更した際にmigrateができない!?

環境
macOS Big Sur
python 3.8.5
django version 3.0.5

Djangoでデータベースを作成する際に便利なmodelsですが、変更や修正を加えた時にちょっと難しいなと思った場面があったので記事にまとめてみました。

まず現在のテーブルに入ってるカラムに新しいカラムを追加をする更新は簡単にできるみたいなのですが、
現在のテーブルにあるカラム自体に変更を加えると何やらめんどくさいことになるようです。
(例えばカラム名を変更したり、カラムのfieldを変更したり)

※詳細はこちらのサイトをご参考ください

なので大胆に仕様変更する場合には一度migrationフォルダにあるinitial.pyを削除してmakemigrationsした方が早いことが分かったのですが、ここで問題が発生!

makemigrationsはできるけど…migrateができません…
![スクリーンショット 2021-07-10 19.37.29.png](htt

元記事を表示

Pythonのos.listdirを使ってフォルダ内のファイルリストを取得する

今回はglobではなくos.listdirでファイルリストを取得する方法を紹介します。
最後にも紹介しますが、この関数とwxPythonを組み合わせてファイルマネージャーをつくることができます。
https://programming-self-study.blogspot.com/2021/06/wxpython-filem.html
#コード

“`Python:sample.py
import os
filelist = os.listdir(“C:\\Users\\”)
for file in filelist:
print(file)
#.NET v2.0
#.NET v2.0 Classic
#.NET v4.5
#.NET v4.5 Classic
#All Users
#Classic .NET AppPool
#Default
#Default User
#DefaultAppPool

元記事を表示

pythonを便利に使おう第四回!行列編!

#初めに
 数学の歴史には表現の秀逸さを整える歴史とも言える部分が多くあります。その中で私が好きな要素を上げるとすれば、自然対数e、虚数i、そしてlogです。…行列はこの中には特に入ってなかったのですが、ビッグデータを解析したいというときには、行列の内積を使いたいなとなりましたので、今回は行列についてpythonで勉強して行こうと思います。

#第8章「行列」の問題
 というわけで今回例題として使わせていただくのはこちら!
>http://web.sfc.keio.ac.jp/~kawazoe/math/book/d-chap8.pdf

Google先生で数学 行列 問題で調べれば一番上に出てきました。この中から適当に問題をセレクトして解いていこうと思います。
##第一問 行列の計算

“`math
3
\left(
\begin{matrix}
1 & -3 \\
2 & -4
\end{matrix}
\right)
-2
\left(
\begin{matrix}
5 & 6 \\
7 & 3
\end{matrix}
\right)
“`

pytho

元記事を表示

言語処理100本ノック 第1章をpythonのワンライナーで解く

[言語処理100本ノック](https://nlp100.github.io/ja/ch01.html)の第1章をpythonのワンライナーで解いていきたいと思います。
セミコロンは使ってません。

# 00. 文字列の逆順Permalink
>文字列”stressed”の文字を逆に(末尾から先頭に向かって)並べた文字列を得よ.

pythonは`[::-1]`でreverseできるので楽でいいですね。

“`python
print(“stressed”[::-1])
“`

# 01. 「パタトクカシーー」
>「パタトクカシーー」という文字列の1,3,5,7文字目を取り出して連結した文字列を得よ.

pythonは`[a:b:c]`でaからbまでcずつ、というのを表現できるのでいいですね。

“`python
print(“パタトクカシー”[::2])
“`

# 02. 「パトカー」+「タクシー」=「パタトクカシーー」
>「パトカー」+「タクシー」の文字を先頭から交互に連結して文字列「パタトクカシーー」を得よ.

実はpythonではsumの第二引数に足し算する元?を指定

元記事を表示

ファイルごとに異なるPWでzip暗号化する作業の省人化。3人日掛かっていた作業を1秒で処理した話。【完成版】

日常業務を省力化を図っております。
一か月前に、「月初エクセル集計処理を完全自動化し、100人日掛かっていた作業を一秒で処理した話。【完成版】を書きました。→https://qiita.com/naiveprince0507/items/3e4d322f7f1c3068487a
それの第2弾となります。

===========
1.状況説明
下記の様な、顧客別に送付するPDFファイルがあったとします。
![0710.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1665829/acb30216-863e-1f33-de5b-63948a0313b6.jpeg)
客先にメールで送信する際に、それぞれのpdfファイルに、別個のパスワードでZIP暗号化を掛けて、客先送信すると言う事はよくあると思います。

2.普通のやり方
PW自動生成ソフトやサイトを使って、PWを作成して、それを一つずつコピペして、LhaplusみたいなZIP暗号化ファイル作成ツールを使って、一つずつ暗号化ファイルを作成していく必要があり

元記事を表示

Telegraf で InfluxDB 2.0 にデータを入れる

次のページを参考にしました。
[Grafana+InfluxDBv2+telegrafで室内温度を可視化する](https://izuminmin.com/server/try-grafana-influxdb-telegraf/)

Arch Linux で Telegraf のインストール

“`bash
yay -S telegraf
“`

起動

“`bash
sudo systemctl start telegraf
“`

設定ファイルの編集
>UDP 8092 に入ってきたデータを、InfluxDB に送ります。

“`text:/etc/telegraf/telegraf.conf
(省略)
[[outputs.influxdb_v2]]
urls = [“http://127.0.0.1:8086”]
token = “1zIYs1taCm3pWQOBUNk0ssYccOF7YgJcdGyJDbiFYTBf7hcPvyl5nGyt71rNVkYtg2rB
ceUwQ1r5Xzm7Mabcde==”
organization = “ekzemplaro”
b

元記事を表示

zsh – brew doctorでWarning:”config”~~の対処方法

#まえがき
はじめまして。figgy puddingと申します。

3か月ほど、iPadでPythonista3を使って勉強、Macに移行後、zshやらbashやらの
てんやわんや時にエラー出まくり事案が発生、右も左も分からないけど、
ジンに会うためにハンターになることを決意したゴンがミトさんに認められて、
ハンター試験の受験資格を得たように、ターミナルシェルが zsh の方へ、
Pythonのインストール後にbrew doctorを行うとWarning”config”~~ と出た際の解決方法を
同じような方々に届いたら、との思いで投稿しました。bashの解決策はたくさんありますが、
zshがなかなか見つからず苦戦しました。今回はPATHのあとの一文がポイントになり、
解決することができました。目指せドーレ港!

“`:zsh
watashi@figgy ~ % brew doctor
Please note that these warnings are just used to help the Homebrew mainta

元記事を表示

OTHERカテゴリの最新記事