SSブログ

discord Botつくるよー その2 [python]

Botが出来たので以下を参考(コピペ)にする。
https://discordpy.readthedocs.io/ja/latest/quickstart.html

import discord
from discord.ext import tasks
from datetime import datetime


# 自分のBotのアクセストークンをコピペ
TOKEN = 'Token'

# 接続に必要なオブジェクトを生成
client = discord.Client()

# 起動時に動作する処理
@client.event
async def on_ready():
    # 起動したらターミナルにログイン通知が表示される
    print('ログインしました')

# メッセージ受信時に動作する処理
@client.event
async def on_message(message):
    # メッセージ送信者がBotだった場合は無視
    if message.author.bot:
        return
    # 「/tikuwa」に反応してちくわ大明神と返すBot
    if message.content == '/tikuwa':
        await message.channel.send('ちくわ大明神')

CHANNEL_ID = 865158785369899008 # 任意のチャンネルID(int)

# 任意のチャンネルで挨拶する非同期関数を定義
async def greet():
    channel = client.get_channel(CHANNEL_ID)
    await channel.send('おはよう!')

# bot起動時に実行されるイベントハンドラを定義
@client.event
async def on_ready():
    await greet() # 挨拶する非同期関数を実行


# Botの起動とDiscordサーバーへの接続
client.run(TOKEN)


nice!(0)  コメント(0) 

discord Botつくるよー [python]

心理学界隈の仲間(願望)とワイワイできるDiscordサーバーを立ち上げたのですが
心理学関連のニュースを自動で取ってきてURLとタイトルを投げてくれるBotがほしーなーと思ったので作ってみる。
まずは以下のURLに飛んでログイン。
https://discord.com/developers/applications/
ログインしたらNew Applicationで適当な名前で作成。
左のSettingから「Bot」を作成してYes do it!
アクセストークンはCopyとRegなんたらというところから取得できる。
Regなんたらはトークンを更新してしまうため、必要時以外はクリックしない。

次にSettingから「OAuth2」を選択したらBotを探してチェック
URLが下に出てくるのでそちらのURLをコピーして飛ぶ。
そうしたら諸々OKしたら閉じる。
nice!(0)  コメント(0) 

pythonでサンプルデータを作成 [python]

pythonで統計で使えそうなサンプルデータを作成し、エクセルにぶち込んでみました。
import openpyxl as px
import random
wb = px.load_workbook("data.xlsx")
ws = wb["Sheet"]

title_list = ["id","sex","age"]
random_sex = ["f","m"]
cnt = 0
for i in title_list:
    cnt+=1
    ws.cell(row=1, column=cnt, value=i)
for answers in range(1,31):
    cnt+=1
    ws.cell(row=1,column=cnt,value="T%d" %answers)
for i in range(1,101):
    ws.cell(row=i+1,column=1,value=i)
    j = random.randint(0,1)
    ws.cell(row=i+1,column=2,value=random_sex[j])
    ws.cell(row=i+1,column=3,value=random.randint(18,30))
    for k in range(4,34):
        ws.cell(row=i+1,column=k,value=random.randint(1,5))
wb.save("data.xlsx")



nice!(0)  コメント(0) 

wordとexcelをPython様に動かしてもらう [python]

皆尊敬するロリババアことPython様に私たちの最も使用頻度の高いこれらを動かしてもらいましょう。
#Excel編
import opnepyxl as px

#エクセルファイル(ブック)の選択
wb = px.load_workbook("test.xlsx")
#シートの選択
ws = wb["Sheet1"]
#セルに値を入力 変数も可
ws["A1"].value = "ここやで"
ws["A2"].value = 1234567890

#ブックを保存
ws.save("px.xlsx")


#Word編
import docx
#ファイルを作成
doc = docx.Document("test.docx")
#入力
doc.add_paragraph('タイトル')
#1行目のフォントサイズを26に変更
doc.paragraphs[0].runs[0].font.size = docx.shared.Pt(26)
#もう一行追加して本文とする
doc.add_paragraph('ここに本文を入力していきましょう。')
#ファイルを保存
doc.save("title.docx")

nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

GUIアプリを作りたい [python]

pythonでGUI系を作るものとして最も有名?なのがtkinter。
他にも色々ありそうですが、メジャーで情報が多そうなのでこちらを採用。

ラベルの表示とボタンの表示と機能の作成。
テキストボックスとその内容の表示を試してみた。
今日はとりあえずここまで。

import tkinter as tk
root = tk.Tk()
#タイトル名の指定
root.title("タイトル")
#画面サイズの指定
root.geometry("450x350")

def button_action():
    print('キサマッッ!!今ッッ!!そのボタンを押したなッッ!!!')
def print_text():
    val_text = txtbox.get()
    print(val_text)

#ボタン、ラベルの設定
lb = tk.Label(text="ラベル")
bt = tk.Button(text="ボタン", command=button_action)
#テキストボックスの作成
txtbox = tk.Entry()
txtbutton = tk.Button(text="送信", command=print_text)

#ボタン、ラベルの表示
lb.pack()
bt.pack()
[widget.pack() for widget in (lb, txtbox, txtbutton)]

root.mainloop()


nice!(0)  コメント(0) 

pythonで連番ファイル生成 [python]

講義の第一回から第十五回までのフォルダとかいちいち作ってられん、的な時にオヌヌメ
import os 
for i in range(1,11):
    os.mkdir('第%d回'%i)

pythonなんて入ってねえぞ!という場合はコマンドプロンプトでこちら。
@echo off
for /l %%i in (4,1,6) do (
	mkdir 第%%i回
	echo %i
	)

nice!(0)  コメント(0) 

スクレイピングに挑戦 [python]

Webスクレイピーング

import urllib.request, urllib.error
from bs4 import BeautifulSoup

url = "https://www.kadokawa.co.jp/product/search/?lgenre=13&releaseDate=1"
#python2系ではurllib.request(url)
html = urllib.request.urlopen(url)
soup = BeautifulSoup(html, "html.parser")

h2 = soup.find_all("h2")

book_titles = []
for tag in h2:
    try:
        string_ = tag.get("class").pop(0)
        if string_ in "book-title":
            ts = tag.string.replace(' ', ' ')
            book_titles.append(ts)
            #break
    except:
        pass
print(book_titles)
with open('titles.csv', mode='w+',encoding='utf-8') as f:
    for i in book_titles:
        s = f.write('%s,' %i)


nice!(0)  コメント(0) 

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。