Python関連のことを調べてみた

Python関連のことを調べてみた

PythonでHTMLをPDF、画像、XML、XPSに変換する

ウェブコンテンツは、情報発信の主要な形態のひとつです。 ウェブ開発では、HTMLファイルをPDF、画像(PNGやJPEGなど)、XML、XPSなど、さまざまな形式で保存したり共有したりする必要が生じることがあります。 これらのフォーマットにはそれぞれ利点があり、異なる目的に適しています。 この記事では、[**Spire.Doc for Python**](https://www.e-iceblue.com/Introduce/doc-for-python.html) ライブラリを使用してHTMLドキュメントをこれらの形式に変換する方法について説明します。

## Python Wordライブラリをインストールする
始める前に、以下のpipコマンドを使用して[Spire.Doc for Python](https://www.e-iceblue.com/Introduce/doc-for-python.html)をインストールすることができます。
“`
pip install Spire.Doc
“`

Spire.Doc for PythonはPython言語をベースとした文書処理

元記事を表示

Dockerfileの中身がわからない

# 背景
Dockerまわりの勉強をしてると色々な先人の手順が簡単にヒットして「とりあえず動いたやったー」となりがちなので、ちゃんとDockerfileの中身を見てみようと思いました。
今回は

https://zenn.dev/maha17/articles/ade5fc1dbc9d02

のサイトをもとに勉強を進めていて利用したDockerfileです。

__注意点__
– 筆者は自分で使うシステム用にDockerを使う程度なので、「載っているコードは企業で使うならこうすべきではない」などあるかもしれません。
– この記事は初学者向けです。

# Dockerfileってなに?
DockerはDockerfileに記述された命令を読み込んで自動的にイメージのビルドができる。

docker buildでDockerfileに記述された命令を順番に実行してくれるので、簡単に同じ環境を作れる。 つまり勉強の過程でやり直したい時や、開発の時に複数人で環境を揃えたい時にDockerfileを共有すれば簡単にできる。えらいね。

記述の形式は以下の通り
“`
命令 引数
`

元記事を表示

【Python】ディクショナリ(辞書)の基本と使いどころと具体例

「Pythonを勉強していたらディクショナリが出てきて良く分からない!」
「データ構造ってなに?ディクショナリってどの場面でどう使ったらいいの?」
という人向けの記事です。

使い方を具体例で示していますので参考になれば嬉しいです。

## ディクショナリとは

ディクショナリ(辞書)はデータ構造の一つです。

`データ構造とは、プログラミングにおいてデータを効率的に格納する形式や方法のこと` 簡単ですね!

プログラミングの”基本的”なデータ構造は2つだけ

– リスト(配列):複数の要素を順序付けて格納することができるデータ構造
– ディクショナリ(辞書):キーとバリュー(値)のペアを格納するデータ構造

この2つが上手く使えれば、だいたいの業務プログラムは上手く書けるようになるため、この機会にディクショナリの使い方を押さえておきましょう!

## ディクショナリを使用するメリット

– キーに対応するバリューを簡単に格納し、取り出すことができる
– 動的なデータ構造であるため、要素の追加や削除が容易にできる
– 大量の要素を追加しても高速に値を取り出せる

## ディクショナリの

元記事を表示

図解Django超入門ハンズオン

![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3787749/7214aea5-4b5c-779f-917e-29230f8aa84a.png)
# はじめに
この記事はPythonとそのWebフレームワークであるDjangoへの入門を目的としたハンズオンの資料です。
Python初心者向けに1.5時間程度のボリュームを想定しています。
図解でDjangoのしくみをイメージしつつ手を動かしてビジュアル的に面白そうなものをフロントエンド技術なしに作ってみたいという方はどうぞお付き合いください。
超入門とあるように文法やフレームワークの機能の詳細な説明は目的としていませんのでご了承ください。

# 作るもの
学びたいことを投稿することができるサービスLearnCloudというものを作っていきます。
![Untitled 14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3787749/afe49e2

元記事を表示

[入門]AI音声認識エンジン「AmiVoice」のAPIをPythonで使ってみた!

## AmiVoice概要

[公式ページ](https://acp.amivoice.com/amivoice/)を適宜抜粋しております。

### AmiVoiceの特徴

– 音声認識市場シェアNo.1の音声認識エンジンを開発者に提供
– 特に日本語に対する高い認識精度
– ノイズに強い
– 街中、工場でも認識可能
– 国内での開発&運用
– お客様音声データの海外流出はない
– 専門用語に特化したエンジンを複数用意
– 医療、金融、保険など業界特有用語の認識精度が高いエンジンも用意

### 提供タイプ

– AmiVoice API (共用サーバ利用型)
– 従量課金制のクラウド音声認識API
– さくっと始めるならまずはこれ(毎月60分程度の無料枠も有)
– 本記事で取り扱うのはこれのみ
– AmiVoice API Private (専用サーバー構築型)
– オンプレ環境で利用する音声認識API
– AmiVoice SDK (端末組み込み型)
– オフラインで使える音声認識エンジン

提供タイプ間の

元記事を表示

pytestで参照するモジュールを変更したい

ツリー構成
“`
.
├── README.md
├── mocker
│ ├── __init__.py
│ └── __pycache__
├── poetry.lock
├── pyproject.toml
└── tests
├── __init__.py
├── __pycache__
├── stub.py
└── test_target.py
“`

mocker/\_\_init\_\_.py
“`
import mymodule

def target():
mymodule.get()

“`

tests/test_target.py
“`
from mocker import target

def test_target():
target()

“`
target関数をテストしたいが、mymoduleなんてモジュールはないのでエラーが出る
そこでスタブモジュールを作る
tests/stub.py

“`
def get():
print(“stub!”)

“`
mymodu

元記事を表示

本家Examplesで知る、新たなニューラルネットワーク『KAN』の威力

文中の図は理がない限り、原論文あるいはドキュメントからの引用です。
# KANってなに?
**KAN(Kolmogorov-Arnold Network)** は2024年4月30日にプレプリント公開サイトarXivに投稿された論文

https://arxiv.org/abs/2404.19756

にて提案された従来のMLPとは異なる新たなニューラルネットワーク構造です。[^1]
[^1]:B-スプライン曲線で関数$\phi$を表現しているところを、それ自体MLPで表現してしまえば従来のNNと等価だという意見もあります。

コルモゴロフ・アーノルド表現定理(Kolmogorov-Arnold representation theorem)に基づいて設計されており、非線形な活性化関数そのものを直接学習することから、**パラメータ効率が良く**、学習結果の**解釈可能性が高い**ことが特徴です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501281/c242b836-ab78-

元記事を表示

Windows上のPythonでファイルパスを指定する

# サマリ
今までLinux上でしかPythonを動かしたことがなかったので、Windows上のPythonを動かした時にファイルパスの指定ができなくて、小一時間悩みました。

# 今回困ったこと
例えば、こんな具合でWindowsのファイルパスを指定します。
“`
>>> file_path = “C:\Users\hogehoge\fugafuga”
“`
そうなるとこんなエラーが出ます。
“`
File ““, line 1
file_path = “C:\Users\hogehoge\fugafuga”
^
SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: truncated \UXXXXXXXX escape
“`

# なんで?
LinuxやMacでファイルパスを指定する際は`/(スラッシュ)`でディレ

元記事を表示

複数のCSVファイルに対して、同一アイテムの数値を加算する

“`python

import argparse
import csv
import os

def main() -> None:

parser = argparse.ArgumentParser()
parser.add_argument(“-i”, “–input_dir_path”, default=”./”)
parser.add_argument(“-o”, “–output_file_path”, default=”./output.csv”)
args = parser.parse_args()

input_dir_path = args.input_dir_path
output_file_path = args.output_file_path

csv_files = [file for file in os.listdir(input_dir_path) if file.endswith(“.csv”)]
margede_data = {}

# csvの読み込み
fo

元記事を表示

好きなことをデータ解析するのがさいつよ #1

# はじめに
好きなジャンル(やきう)に関してであれば楽しんでいる内に分析能力上がるのがさいつよでは?という激甘マインドで解析を進めていきます。
100日後くらいに、自分に何が残るのか。楽しみですね!
# 想定読者
– 物好き
# 自分のレベル
– Python初心者
– 機械学習なにそれおいしいの?

# 方針
– 思い付きによる試行錯誤は「悪」。筋道を立てて仮説を検証する
– 理解は時間がかかる作業として、急がず、徹底的に腰を据える習慣をつける
– あやふやな理解のままGoogleサーチや生成AIのコードをコピペして使わない

# 入力データ
– 2012年から2023年のセイバーメトリクス系データ

# 出力想定(例)
2023年の両リーグの盗塁数ランキング
![download.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355686/853e8f30-7935-5176-8c3f-35bfb6c51e87.png)

オレンジが盗塁企画数、青が成功数。
現状はこんなもんしかまだ出せていません

元記事を表示

pyvmomiで仮想マシンオブジェクトをループせずに取得する方法(実行時間短縮)

pyvmomiを使ってvCenterの仮想マシン情報の取得をAPIで行う際に、情報取得にかなり時間がかかる(1分程度)という事象に遭遇しました。

調べたところ、対象のvCenterが2000台超の仮想マシンを管理しており、viewを作って仮想マシンをループして検索するところで時間がかかっていたようです。

今回仮想マシンの台数が多い際にも、対象の仮想マシンオブジェクトを素早く取得する方法が分かりましたので(あまり類似記事が日本語でなかったこともあり)、備忘として記しておきます。

# 元々利用していたコード
元々以下のようにviewを作成しfor文でループさせ、仮想マシン名が一致する仮想マシンMOBを取得するコードを書いていました。日本語でpyvmomiを検索するとよく出てくるコードから真似をしております。
“`python
def get_mob_info(content, target):
“””
指定した名前を持つ仮想マシンのManagement Objectを取得する。

:type content: vim.ServiceInstanceCont

元記事を表示

Poetryを使用してFast APIを動かしてみる

### ファイル構造
fast-api/
├── app
│  ├── init.py
│  └── main.py
├── poetry.lock
└── pyproject.toml

### pyproject.toml作成
$ poetry init
色々出てくるが、エンター押し続けてればOK

### 必要なパッケージをインストール
$ poetry add fastapi
$ poetry add “uvicorn[standard]”

### poetry.lock作成
$ poetry install –no-root

### main.pyを編集

“`python
from fastapi import FastAPI

app = FastAPI()

@app.get(“/”)
async def hello():
return {“message” : “Hello,World”}
“`

### FastAPI起動
$ poetry run app.main:app –host 0.0.0.0 –port 80 –reload

### 起

元記事を表示

OpenVPNのユーザー認証のLDAP化

# はじめに
OpenVPNサーバの証明書を延長したので、今度はユーザー認証周りを調べてみました。

現状、OpenVPN接続時のユーザー管理台帳が個別のsqlite DBに存在する環境でのお話です。

いわゆるユーザーアカウント、パスワード情報があちこちにあることは管理上よろしくないですし、ユーザー認証をLDAP環境に直接問い合わせることで、状況管理稼働を減らせないかなと思って調べた内容をまとめたものです。

一度試験はしましたが、LDAP環境の整備が終わってないので実運用はまだしていませんが、正常に認証、接続が行えるところまでは一応確認済みです。

# OpenVPNのユーザー認証のLDAP化

OpenVPNで、証明書とは別にユーザー名/パスワード認証を行う手順はオフィシャルにも記載されています。

https://www.openvpn.jp/document/openvpn-sqlite-auth/

上記からたどれるリンクにダウンロードファイルはないですが、サイト内にコードは記述してあるので、ちゃんと読めば上記サイト内の方法でsqliteのDB内にユーザー情報を格納して、証

元記事を表示

Python初日

HTMLがなんとなく掴めてきたので、Pythonを触ってみた。

VScodeで伝統のHello World!を記述し、ターミナルで表示されるかチェック。

Hello World!を表示

print("Hellow World!")

 
元記事を表示

ABC351備忘録【C~D】

## C – Merge the balls
### 問題
https://atcoder.jp/contests/abc351/tasks/abc351_c

### 考えたこと
実際に$2^x$を格納して探索していくとTLEやMLEになってしまいます。よって、指数部分だけを考え、条件3については$2^x + 2^x = 2^{(x+1)}$となる性質を使います。ほかの条件は素直に実装すればOKです。

### ACコード
“` c.py
n = int(input())
A = list(map(int, input().split()))

ans = []

for i in range(n):
ans.append(A[i])
while True:
if len(ans) <= 1: break elif ans[-1] != ans[-2]: break else: ans.pop() ans.append(an

元記事を表示

[ReviewAI 使用例] チュクミドサ [新大久保 韓国料理店]

# はじめに

レビュー分析AIサービスの ReviewAI (レビューアイ) を開発しています。
本記事ではレビュー分析の例として、新大久保の韓国料理の人気店を取り上げていきます!
[人気店の記事をまとめているページはこちらです。](https://qiita.com/RetegyLink/items/3d94852bf25a724a82cc)

今回は、チュクミドサ の食べログに集まっているレビューを分析します。

## チュクミドサ

> 韓国No.1のブランドイイダコ専門店 チュクミドサ

[食べログ](https://tabelog.com/tokyo/A1304/A130401/13271829/)

## ReviewAI (レビューアイ)

弊社 RetegyLink が開発中のレビュー分析 AI です。
https://reviewai.next-seed.work/
試作版を公開中で、現在は
– [食べログ](https://tabelog.com/)
– [じゃらん](https://www.jalan.net/)
のレビューを分析できます。

# レビュー分析

元記事を表示

ヒストグラムをマルチガウシアンでフィッティングするシンプルな方法

## 対象読者
* Pythonの基本文法を知っている人
* ヒストグラムを複数のガウス関数の和でフィッティングしたい人

## 序論
とある実験の結果として2つ以上のピークがありそうなヒストグラムを得たため、ガウス関数の和でフィッティングしようと思いました。方法をググってみたのですが、検索結果のスクリプトは複雑そうなものでした。そこで、よりシンプルなものを作成したので共有します。基本文法以上の部分には解説を加えました。

## スクリプト
“`Python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.stats import norm
from scipy.optimize import curve_fit

# ガウス関数の定義
def gauss(x, *p):
v = np.zeros_like(x)
for igauss in range(0, int(len(p) / 3)):
v += p[3*igauss] * np

元記事を表示

diagramsコードから構成通りのIaCをChatGPTに書いてもらう

Terraformの勉強がてら、Pythonパッケージ diagrams のコードを基に IaC コードを生成AIに書いてもらおうという取り組みです。

## 作成したい環境

“`python
from diagrams import Diagram, Cluster
from diagrams.aws.compute import EC2
from diagrams.aws.storage import S3
from diagrams.onprem.client import Client
from diagrams.aws.network import Endpoint

with Diagram(“Simple Diagram”) as diag:
with Cluster(‘VPC’):
with Cluster(‘Public subnet’):
ec2_pub = EC2(‘Public Instance’)
with Cluster(‘Private subnet’):
ec2_

元記事を表示

エンジニア管理ツールでも作る③Flask・Gunicorn環境用意

# 前回
Next.jsの環境を作りました。

https://qiita.com/k-jimon/items/34becb7bd9aabdae6d10

# 今回の目標
DockerでFlask + Gunicorn環境を作る

# Dockerfileの用意
“`dockerfile
# api/Dockerfile
FROM python:3-slim

WORKDIR /app

RUN pip install –upgrade pip

COPY requirements.txt ./
RUN pip install -r requirements.txt
“`

現時点でpython:3-slimのバージョンは3.12.3でした。

pipはとりあえずupdrageしておきます。

`requirements.txt`には必要なパッケージ一覧を羅列する予定です。

`RUN pip install -r requirements.txt`を`Dockerfile`に書くかは好みの問題なのかもしれませんが、今回は書いています。
イメージがPythonパッケージをインス

元記事を表示

ABC352(Atcoder Beginner Contest)のA~E(A,B,C,D,E)問題をPythonで解説(復習)

# ABC352(Atcoder Beginner Contest)のA~E(A,B,C,D,E)問題をPythonで解説(復習)

# A問題

– `Z`駅が`X`駅と`Y`駅の間にあるかどうかを判定すれば良い.
– つまり,`min(X, Y) <= Z <= max(X, Y)`となっているかどうかを見れば良い. ```A.py """ <方針>
– `Z`駅が`X`駅と`Y`駅の間にあるかどうかを判定すれば良い.
– つまり,`min(X, Y) <= Z <= max(X, Y)`となっているかどうかを見れば良い. """ # 標準入力を受け取る. N, X, Y, Z = map(int, input().split()) # X駅とY駅の間にZ駅があるかを見る. if(min(X, Y) <= Z <= max(X, Y)): # Yesを出力をする. print("Yes") else: # Noを出力をする. print("No") ``` # B問題 - 正しく入力された文字の`index`を記録する変数`ans`を用意する. - 文

元記事を表示

OTHERカテゴリの最新記事