0
1

Python備忘

Last updated at Posted at 2023-12-05

Python備忘

自分用も兼ねた内容です。

基本

import ------

def main():
    while True:
        #メインの処理
    
if __name__ == '__main__':
    main()

手動ガベージコレクション

import gc

del 変数名
gc.collect()

一定回数を繰り返す

for i in range(2):
    #range()の引数に繰り返したい回数を指定

配列を要素の回数繰り返す

for 変数 in 配列:
    #変数を一つずつみてゆく

エラーが出る処理について、確実に処理できるまで繰り返す

import time
import pyautogui as pag

while True:
    try:
        #実行したい処理
        img_d = pag.screenshot() #実行したい処理 この場合はキャプチャ
        #成功した場合
        break #breakでwhileのループを抜ける
    except:
        #成立しなかった場合、エラーが出た場合などの処理
        time.sleep(1) #少し間隔をあける

本日の日付や時間 Y/m/d 00:00:00の形式の場合

from datetime import datetime as dt

tdt = dt.now()
today = tdt.strftime('%Y/%m/%d %H:%M:%S')

画面キャプチャ

import pyautogui as pag

#画面全体をキャプチャ キャプチャ自体は領域指定しないほうが速い
img = pag.screenshot()

#一部をキャプチャ
img_part = pag.screenshot(region=(0,0,800,500)) #基準点のX、基準点のY、幅、高さ

ファイルを複製する

import shutil

old='old.csv'
new='new.csv'
shutil.copyfile(old,new)

プログラムの終了

import sys

sys.exit()
#エラーを発生させて止める様子。なのでtry~except内だと反応する

ウェブページにアクセス(アクセスするのみ)

import requests

url = 'https://----------'
r = requests.get(url)

ウェブから情報を取得する

import requests
import BeautifulSoup

url = 'https://----------'
r = requests.get(url)
soup = BeautifulSoup(r.text,'html.parser')

p_element = str(soup.p) #例 pタグの情報を取得する場合
h1_element = str(soup.h1) #例 h1タグの情報を取得する場合

キー操作

import pyautogui as pag

#一文字送る
pag.typewrite(['x'])
pag.typewrite(['enter'])

#二つのキーを同時に押す場合
pag.hotkey('alt' , 'f')
pag.hotkey("win" , "up")

特定のウィンドウが開いているか判定する(+そのウィンドウを前面に表示させる)

import win32gui

try:
    #ウィンドウがあるか ない場合はエラーとなり、except側の処理が実行される
    w_hantei = win32gui.FindWindow(None,'ウィンドウの名称')
    #以下、ウィンドウがあった場合の処理
    #ウィンドウを前面に
    win32gui.SetForegroundWindow(w_hantei)

except:
    #以下、ウィンドウがない場合の処理

該当の画像が画面内にあるか探す(+その画像部分をクリックする)

import pyautogui as pag

try:
    pic_path = './sample.jpg'
    p = pag.locateOnScreen(pic_path,confidence=.5) #画像を探す なければエラーとなる。confidenceは感度=どの程度がばっとした相似度か
    #以下画像があった場合
    x, y = pyautogui.center(p) #該当部分の中心座標を取得
    pyautogui.click(x, y) #クリックする
except:
    #画像がなかった場合の処理はこちら
    pass

ウィンドウ表示を待つ関数

ウィンドウが発生するまで繰り返される(キャッチしたら最前面にし、breakで抜ける)

import time
import win32gui

#--------------------------------
def matsu(window_namae):
#--------------------------------
while True:
    try:
        w_ob = win32gui.FindWindow(None,window_namae)
        win32gui.SetForegroundWindow(w_ob)
        break
    except:
        time.sleep(0.1)
#--------------------------------

別のプログラムを起動・実行

import subprocess

subprocess.Popen('C:/Program Files (x86)/----------------.exe')

ウェブカメラ画像の利用(画像分析) 例5秒ごとに、半分に縮小して画像を保存

import cv2
import datetime
import time

cap = cv2.VideoCapture(0) #カッコ内は環境(カメラの接続状況・台数によって変わる)
while cap.isOpened():
    ret,frame = cap.read()
    if ret == True:
        #画像を取得できている際の処理を以下に 以下は例

        #ウィンドウに表示
        cv2.imshow('frame',frame)

        #中止の処理
        key = cv2.waitKey(1) & 0xFF
        if key == ord('q'):
            break

        #画像を縦半分、横半分にリサイズ
        dst = cv2.resize(frame,dsize=None,fx=0.5,fy=0.5) 
        
        #画像を保存する
        dt = datetime.datetime.today()
        fnm = dt.strftime('%Y%m%d_%H%M%S')
        fileName = fnm + '.png'
        cv2.imwrite(fileName, dst)
        time.sleep(4)

cv2.destroyAllWindows()
cap.release()
0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1