Pythonのお勉強 Part70

■ このスレッドは過去ログ倉庫に格納されています
2023/03/04(土) 00:18:00.31ID:dUl31UkL0
↑スレ立てる毎に減るので、減ってたら3つに補充すること。

・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
 エラー文(勝手に省略orスクショうp等の横着禁止)と
 おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。

★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
  ↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Pythonオフィシャルサイト http://www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki ttp://python.rdy.jp/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2023/08/07(月) 02:30:19.22ID:VL80kvYz0
むしろこれか、今度使ってみよう
https://github.com/microsoft/playwright-python
2023/08/07(月) 06:45:02.83ID:O0KH7AXh0
test.pyのある場所に移動して
python test.py
とすると、sys.argv[0]はtest.pyなんだよな
2023/08/07(月) 11:26:18.20ID:VL80kvYz0
test.pyの人はモジュール化した関数から実行開始ファイルの場所を取得して
設定ファイルとかを読みたかったみたいだけど
そもそもそういうのはmainがある場所でやって引数で渡すのが一般的
2023/08/09(水) 12:45:22.50ID:Dwekhx5a0
モミモミちんちん
2023/08/11(金) 08:50:33.66ID:G/NZQwIra
python勉強始めて1年半かかったけど
やっと機械学習動かせるようになった
2023/08/12(土) 12:23:33.25ID:20qyV/w+M
かっこいい
754デフォルトの名無しさん (ワッチョイ cebb-K2V0)
垢版 |
2023/08/13(日) 21:21:07.31ID:0E5SXPYI0
numpyがpypy3.9までしか対応してなくてつらい
お前ら早く3.10対応させて
2023/08/13(日) 21:41:15.56ID:CM3COsH1M
ライブラリ作者も大変だな
勝手に上がる本体バージョンに無償で対応させられて
2023/08/13(日) 21:54:12.08ID:nWSth0yh0
openで新規書き込みで開く時に、そのファイルを他のソフトで見てたりするとエラーになる
問答無用で書き換えるオプションとかある?
757デフォルトの名無しさん (ブーイモ MMb6-A2L1)
垢版 |
2023/08/14(月) 09:06:14.98ID:0zfUzHP0M
ファイルハンドルの一覧を取得して
OSにファイルハンドルのクローズしてもらう
2023/08/14(月) 09:19:45.83ID:ZA3ioCne0
世の中の大抵のソフトはそんなことにならずに、もう一度開くとちゃんと更新されてるんだよな
それらがいちいちそんな面倒なことをしてるとは思えなくて、pythonだけがひ弱に作られているとしか
2023/08/14(月) 09:24:08.81ID:r+a5TBmRM
「世の中の大抵のソフト」と言うオマエの物差しなんぞ誰も知らん
バッチやpower shellでも同じ結果になるだろう
2023/08/14(月) 09:27:09.98ID:ZA3ioCne0
簡単なスクリプトで試すと、特にエラーにならずに期待通りに書き込んだ
条件を似せても成功する
761デフォルトの名無しさん (ワッチョイ 1abd-Q0IG)
垢版 |
2023/08/14(月) 09:31:22.12ID:RuCw8Hbd0
もう少し具体的に書かないとアドバイスは出てこなさそう
2023/08/14(月) 09:35:28.32ID:YftetqPpM
「簡単なスクリプト」
2023/08/14(月) 14:09:38.85ID:ZA3ioCne0
seleniumでスクレイピングしながら取り込んだ情報をjsonに書き出す、
というのが実際にやってた処理で、そっちではエラーになるんだけど、
普通にjsonを書くだけでは問題が起きない

ファイルサイズが大きいからかな
2023/08/14(月) 14:15:36.24ID:ZA3ioCne0
OSError: [Errno 22] Invalid argument:
のエラーになるというのがよく判らない
大抵はパスの指定が間違ってるとかが原因だけど、普段はちゃんと動くのに
2023/08/14(月) 14:24:33.26ID:niAdk3sTM
じゃあ「普段」通りにしてないって事なんだろうな
自分で答えだしてるじゃん
766デフォルトの名無しさん (ワッチョイ 8b01-DXLR)
垢版 |
2023/08/14(月) 17:43:45.04ID:3nQHx1DG0
pythonでseleniumつかってブラウザ操作して自動ログインするときについて質問させていただきたいです。

画像を選ぶタイプの認証が存在する場合はどのようにして突破すればいいでしょうか?
一応試してみたことは、

・ログイン画面に遷移した後、ユーザ名、パスワードを自動入力後、
 をsleep()を使って10秒止めている間に対象の画像を手動クリックで選択する
 そのあと10秒経ったらシステムが自動でログインボタンを押下する

・ログイン画面に遷移した後、ユーザ名、パスワードを自動入力後、
 現在のURLを取得して文字列として変数に保存(oldUrl)
 2秒に一回回すwhile内でURLを改めて取得(newUrl)をoldUrlとnewUrlを比べて
 異なるURLになったらば(ログイン後の画面に遷移できたら)
 そのwhileループを抜けて続きのブラウザ操作の処理を実行する方法

 この2つ目の方法は、whileが回っている間に画像の選択とログインボタン押下を手動で行うものとしています。

この2点を試してみましたが、うまくログイン後の画面に遷移することができませんでした。
両方法ともログインボタンはアクティブ表示になっていて、
見た目としてはクリックができてないとかそういう感じではなさそうです。

画像選択など、特別な認証が必要ない別サイトでログインを試してみましたが、ログインが可能だったので、
大まかな方法は間違っていないのかなあと思っているのですが...

なにか解決方法などご存じの方いらっしゃいましたら、ご教示いただきたいです。。。
767デフォルトの名無しさん (ワッチョイ 4e31-mJLh)
垢版 |
2023/08/14(月) 19:28:02.18ID:M/R0A3us0
ハイレベルでついていけないと言いつつ煽り文書ばっかだな
嫉妬か?
2023/08/14(月) 21:45:37.58ID:2+cZA+P90
>>766
マウスの動き等で人間かCPUかの判断してるタイプの認証じゃね?
無駄な動きいれてみても同じかな
例えば同じ自動運転でもuwscみたいにマウスカーソルの制御もいれるとログイン出来るんじゃないだろうか
2023/08/14(月) 21:53:53.00ID:31y8BS1q0
そのサイトを見ないと分からんのに、目隠しで想像して目的を達するモノを作れとか鬼畜…
2023/08/14(月) 21:54:32.97ID:ZA3ioCne0
マウスの動きなんかサーバには伝わってない
判断するとしてもクリック位置とタイミングから
2023/08/14(月) 22:03:05.34ID:r+a5TBmRM
from 皮肉 import ハイレベル
2023/08/14(月) 22:21:41.71ID:x1KiHz8w0
>>766
手動タスクが必要な箇所にデバッガーのブレイクポイントを入れて
ゆっくり手動タスクを実行しながらブラウザのデベロッパーツールで
DOMやHTTPリクエスト/レスポンスを確認して原因を探ればいい

まずはログインボタン押下時のHTTP POSTリクエストの状況を見てみる
2023/08/14(月) 22:37:22.37ID:BuOguaPF0
犯罪のやり方を人に聞くようなものだよ
774デフォルトの名無しさん (ワッチョイ 1abd-Q0IG)
垢版 |
2023/08/14(月) 23:42:21.41ID:RuCw8Hbd0
そんなやり方をオープンな場で聞くなよ
どうしてもやるなら自分の力だけでやらないと
>>773も言ってるが、他人の家や車の鍵の開け方を聞いてるのと同じだよ
2023/08/14(月) 23:49:39.71ID:ZA3ioCne0
んなこたーない
2023/08/14(月) 23:56:24.91ID:1GFaH4W20
ちんこ維持りなら>>3をみろ
777デフォルトの名無しさん (ブーイモ MMb6-A2L1)
垢版 |
2023/08/15(火) 08:12:45.63ID:hBc3zv6fM
画像認証だけ別端末で人間がやれば?
2023/08/15(火) 08:15:08.81ID:JoMoSokj0
余計困難になるがな
2023/08/15(火) 08:28:44.16ID:JoMoSokj0
手動ログインした後の情報を取得しなくちゃと難しく考えて、
再度get()してしまってログイン前に戻っているとエスパー
2023/08/15(火) 08:35:53.48ID:NUc+9Fyua
おそらくpostsのほうかと思われる
781デフォルトの名無しさん (ワッチョイ 8b01-DXLR)
垢版 |
2023/08/15(火) 11:03:41.51ID:6qN8XCM10
766です。
回答くださった方も、
あんまりよろしくないのでは?とご指摘くださったも方ありがとうございました。

今回いずれの方法も画像認証の部分は完全に手動の想定で、かつアカウント自体も自分自身のものを使用していましたので、
他人の家の鍵を開けるような悪い方法でセキュリティを突破しているという意識はありませんでした...

確かに便利な技術なので、悪用してしまう方もいるかもしれませんから自動でログインすることを
画像認証は手動だったとしてもエラーを起こす高いレベルで防止している可能性はありますね...

お騒がせしてしまってすみません、みなさんありがとうございました...
782デフォルトの名無しさん (ワッチョイ 9701-DXLR)
垢版 |
2023/08/15(火) 13:21:27.20ID:/nceAzo40
・フリーエンジニアが年間3,600万円の売上を上げた方法を解説する
・26歳で独立して月収150万になった 元引きこもりエンジニアの物語
・ブラック企業から退職し、独立後11ヶ月で“月収300万円超え”になるまでの軌跡を
 デザイナー社長船越良太に聞いてみた!
・ITフリーランスで月額単価150万円!万が一の就業不能に備える
無料の保険もある「クラウドテック」
・フリーランス時代に月収4万円→最高340万円を達成した船越さんに、
「お金」との向き合い方を聞いてみる
・フリーランスSEってどれくらい稼げるの?月単価160万円の案件を扱う定番エージェント
・フリーランスの仕事や職業の種類って何があるの?独立5年目で月収200万の僕が詳しく解説
2023/08/15(火) 21:07:08.25ID:iHrYHeWs0
>>781
seleniumよりplaywrightでstorage_stateを使ってセッション情報再利用した方が簡単だよ
ログイン処理は手動になるけど
2023/08/17(木) 00:50:23.37ID:kQVkGKvWa
ユーザ名、パスワードを自動入力する所までを、
selenium で自動操作して、

これ以後を手動にすれば?
2023/08/19(土) 13:12:32.57ID:52JmQRSba
データベースから取得したレコードを、requestsでどこかに投げるときって
データベースから取得した時点でセッションから抜けた方が良いと思うのだがみんなどうやってるの?

セッション開く → レコードを取得 → レコードを変換して変数に格納 → セッション閉じる
→ 変数に格納されたレコードの内容をrequests.post → 成功or失敗など
→ セッション開く → idなどからレコードを特定 → レコードを更新 → セッション閉じる

セッション開いたままだと
セッション開く → レコードを取得 → レコードの内容を成型してrequests.post → 成功or失敗など
→ レコードを更新 → セッション閉じる
簡潔だが「成功or失敗など」の部分でtimeoutがある場合その影響が気になる
2023/08/19(土) 19:09:54.75ID:Yb/5nk3j0
普段使ってないからseleniumでchromeを使ってるのに、勝手にupdateしてエラーになる
しかも116用はテスト版しか無い
2023/08/19(土) 19:11:55.30ID:o9YRXmkxM
グダグダ言う前にまず作ってみろよ
2023/08/20(日) 10:43:01.59ID:w+meV9DH0
>>785
DBへの更新が必要なら基本コネクション維持してやってしまうな
更新時にコネクション状態をチェックして、閉じていたら再接続する処理を入れる
DBへの接続はコネクションプールを使用
2023/08/20(日) 18:05:19.16ID:PX4OpZxJ0
メモ
txt.replace("条件","置換")
re.sub("条件","置換",txt)
この引数の順番間違って
re.sub("条件",txt,"置換")
ってやってしまってイラッとする
エラーでないし
790デフォルトの名無しさん (ワッチョイ 5946-zV/e)
垢版 |
2023/08/20(日) 19:01:51.69ID:fDuIIfw90
>>789
> re.sub("条件",txt,"置換")

sed 's/条件/' txt '/置換/g'

とするような発想はなかなか得られない。誇っていい。
2023/08/20(日) 19:46:58.41ID:yfTKONE60
名前付き引数「…」
2023/08/21(月) 20:16:18.01ID:2s9JbA1O0
意を決してseleniumを3から4に上げる
影響むっさ少ない
2023/08/23(水) 12:10:00.22ID:08U3MUKX0
Microsoft「Python in Excel」を発表
2023/08/23(水) 12:18:24.50ID:MwQSoi4aa
https://www.itmedia.co.jp/news/articles/2308/23/news089.html
2023/08/23(水) 12:29:49.59ID:T2QqPuZT0
猫も杓子もpythonPythonって
数値計算や機械学習ならRやc++で扱いたいわ
2023/08/23(水) 12:38:43.49ID:08U3MUKX0
なんかR嫌い…
2023/08/23(水) 12:54:37.65ID:me1+gCKa0
Rが適した用途はRがいいんだけど、
範囲が狭いから便利になる人が少ないんだよな
798デフォルトの名無しさん (ワッチョイ db02-5owp)
垢版 |
2023/08/23(水) 13:01:27.66ID:wIF471YP0
エクセルでpython使えるとか前から言われてたけどついにそうなったのか
mysqlやsqlite3,postgresqlなんかと違って
表示前提のRDBMSって感じ?
2023/08/23(水) 13:14:34.96ID:WZJfreeh0
まあVBAを嫌ってた人にとっては選択肢が増えるのは喜ばしい事なんだろうな
2023/08/23(水) 13:15:00.88ID:3Xorbibba
RDBMSでは無い
2023/08/23(水) 13:25:21.92ID:WZJfreeh0
まだまだ限定的な利用しか出来ないんだな
LibreOfficeとかかなり前から使えてるのに
2023/08/23(水) 13:39:23.20ID:me1+gCKa0
excelの形式そのものがガンなんだけどな
データを読み込んでxlsxにして保存するだけで30秒とかかかる
100万行に上限がある

ちゃんと処理したいならexcelは極力避けて、人間とのIF部分だけに留めるべき
その程度ならVBAでも大した手間にはならない
2023/08/23(水) 13:43:16.41ID:1DVbltby0
ネットからデータ取得出来る様になってれば大分捗るな
外部アクセスは機能制限されてそうだけど
804デフォルトの名無しさん (ブーイモ MM4b-tjTV)
垢版 |
2023/08/23(水) 13:45:01.10ID:AcCxuATFM
>>799
もうVBA覚える必要すらないんだ
805デフォルトの名無しさん (ワッチョイ 2b46-6Yea)
垢版 |
2023/08/23(水) 14:08:39.22ID:w8jQJQs20
>>804
Dim var とか変数宣言する Python かもしれないよ。Py# とか名づけられて。
2023/08/23(水) 14:49:16.09ID:Rc0NIPuS0
>>800
それはわかってるよ
逆説的に、例えば「pythonで、データベース部分をmysqlで、エクセルっぽいアプリ作りました」と変わらくなってくんじゃないのってこと
詳しくは知らないけどGoogle Sheetsとかまさにそうじゃないの?
2023/08/23(水) 14:55:19.32ID:9u+qB/A00
データベース操作有りきのpythonってことにはなりそうではある
2023/08/23(水) 14:58:39.32ID:5+B+6aoI0
そりゃまぁ表計算ソフトってどう考えても計算機能主体よりもデータベース主体で考えた方が合理的だわな
2023/08/23(水) 15:05:20.50ID:OE9aeGm20
idスレだとあいつ一発退場になってて草
2023/08/23(水) 15:06:37.91ID:OoNHdIe20
次はあえてpythonでゲームプログラミング周りを強化してほしい
2023/08/23(水) 15:16:40.66ID:me1+gCKa0
excelを扱わないといけないこともあるけど、pandasとかそういういい感じのは使えない
ただの2次元配列として読み込んで、必要なデータは自力で探す

機械で素直に読めるようにと気を使うような人だったら、
最初からデータ形式にexcelを選ばんのよ
2023/08/23(水) 15:20:51.16ID:WZJfreeh0
あくまで出力用でデータストアとしての利用は無理が
813デフォルトの名無しさん (アウアウウー Sa45-greZ)
垢版 |
2023/08/23(水) 15:28:57.50ID:89z/H8g7a
>>801
ほんそれ
>>805
やめれ
2023/08/23(水) 21:36:48.76ID:Odc9jJej0
>>806
記事を見る限りはVBAやマクロの代わりにpythonが書けるようになったとしか思えないが
2023/08/23(水) 23:28:55.34ID:Gy+Uvs1z0
Pythonでexcel弄るのと何が違うんだ。
2023/08/24(木) 07:08:32.89ID:UfAeCzV0a
Pythonでexcel弄るのは
15年以上前から出来てるのを今更
excel上のpythonで実行する方が遅い可能性まである
2023/08/24(木) 09:10:43.31ID:336gIh/k0
単にVBAでいじるのが嫌ってだけでしょ。俺もVBAは嫌い。
2023/08/24(木) 09:18:05.21ID:XmY66ZqSd
パパも?!
ママー裸じゃいやー!!
2023/08/24(木) 09:24:28.24ID:ERnyjfkQ0
あんなもんは懲役刑の一種だ
被告をVBA開発3年の刑に処す
2023/08/24(木) 09:30:40.61ID:mwIHzd4fd
リストのappendって順序保証されてたっけ・・?
821デフォルトの名無しさん (ワッチョイ 2b46-zV/e)
垢版 |
2023/08/24(木) 09:33:26.42ID:fKPaMPSR0
>>815
ワークシートにコードを書くと、自オブジェクトがワークシートなので、excel.workbooks[x].worksheets[x] みたいに辿らなくて済む「気安さ」はあるのかもしれない。
や、想像だけど。
2023/08/24(木) 09:38:02.70ID:/tekwqPS0
excelからpython使いたい人はもう使ってるわな
2023/08/24(木) 10:00:56.65ID:gv9nNnk+M
罫線やらフォントやら背景やら
装飾の手間が省けるといいのだがな
excelやpoor point使うのは多様な見せかたができるからだろ
2023/08/24(木) 10:03:24.50ID:ERnyjfkQ0
画像の貼り付けとか出来なかったな
似たようなのをフォントと色を工夫して作った
2023/08/24(木) 13:47:47.18ID:B0BRQL9da
そもそもExcelだけPython OKにするのは違和感でしかないので
826デフォルトの名無しさん (ブーイモ MM4b-tjTV)
垢版 |
2023/08/24(木) 13:52:11.78ID:itl4U/XBM
Pythonは学習コストが低いから
その点JSでも良いんだけど、そっちは10進数型使えなくて数値計算に向かない
2023/08/24(木) 14:51:34.81ID:6pjOgQ6JM
しかし編集はVBA用の糞エディタつかうのかなぁ?
VS Code埋め込んで欲しいわ
2023/08/24(木) 19:52:22.32ID:KHAHuAyj0
学習コスト低いって学習しやすい訳ではなくて応用の幅が広いからコスト低いだけやからな
マルチスレッドや純粋仮想関数などもあるので他の言語と学習時間そのものはそんなに変わらない
2023/08/24(木) 20:56:17.41ID:ERnyjfkQ0
いや、学習しやすいよ
2023/08/24(木) 20:59:40.23ID:KHAHuAyj0
学習しやすいってcに比較しても学ぶこと多いのにか?
学習しやすいって何をもって学習しやすいって言ってる?
オブジェクト指向言語であれば他とそんな変わらないだろう
2023/08/24(木) 21:23:03.14ID:KHAHuAyj0
まぁいっか
おちんちんびろーん
2023/08/24(木) 21:40:52.41ID:Zzh0jzpS0
Excel搭載のPythonが古くてクソって言われる未来が見える
833デフォルトの名無しさん (ワッチョイ c946-6Yea)
垢版 |
2023/08/24(木) 22:12:13.69ID:whWZK/lb0
>>830
> 学習しやすいってcに比較しても学ぶこと多いのにか?

少ないのでないか。ハードウェアを気にする必要ないし。
2023/08/24(木) 22:16:44.91ID:JuHRNHof0
>>832
>>794を見る限りクラウド上で実行されるからそれはなさそう
その代わりオフラインでは使えないんだな
835デフォルトの名無しさん (ワッチョイ 93bd-dU66)
垢版 |
2023/08/24(木) 23:21:58.79ID:/RAaAAMu0
Pythonは豊富なライブラリ使ってなんぼだから、
そっちの方向学んでいくとなるとめちゃくちゃに広い
2023/08/24(木) 23:30:23.91ID:len+BldFM
Pythonは外部ライブラリを使わない素の状態が最強
2023/08/24(木) 23:34:24.16ID:ERnyjfkQ0
何かツールを作って、ユーザが機能拡張できるようにする
関数とか変数を提供して、それを組み合わせてロジックを自由に作って貰う
そういう時のスクリプトの文法としてpythonは最適
classとかライブラリとかは無くても素直に書ける
2023/08/25(金) 12:30:22.74ID:uVWCvp2aa
Excel上のPythonからExcelを操作する
839デフォルトの名無しさん (ワッチョイ 2b46-6Yea)
垢版 |
2023/08/25(金) 12:45:18.35ID:wAyzNZg/0
Excel上のPythonからOpenOfficeを操作できたりするのだろうか。
2023/08/25(金) 12:51:18.70ID:nyMvJkyga
>>839
出来るでしょ
普通に考えて
2023/08/25(金) 15:49:25.26ID:ORSBbG2a0
minicondaもここでいいの?
842デフォルトの名無しさん (ワッチョイ 7101-glFA)
垢版 |
2023/08/25(金) 22:41:28.75ID:j9uNZFV/0
>>837
名前も文法もゲテモノだろ。早く消えてもらいたい。
2023/08/30(水) 20:32:20.95ID:GMxyW1Ul0
enumerateが便利なんだけど使い倒してもいい?
i=0でi+=1で再帰とかした方がいいとか無いよね
2023/08/30(水) 21:05:50.79ID:lO/fHs/A0
大抵は、list_a[i]とlist_b[i]をセットで扱いたい時だからなあ
list[i].a と list[i].b の方が絶対素直
845デフォルトの名無しさん (ワッチョイ ca5c-4sYy)
垢版 |
2023/08/30(水) 21:28:34.25ID:s6yXhO480
emumerateは地獄の関数
無分別な使用は冥府魔道を行くことになる
2023/08/30(水) 23:58:43.22ID:G+IjVkrC0
具体的にはざっくりこういうことをしたんだけど
何かいい方法ないかな

items = [item1,item2,item3]
prms = [prm1,prm2,prm3]
# prms = [prm1]

max_prm_index = len(prms)-1
for i,item in enumerate(items):
 item( prms[min(i,max_prm_index)] )

prmsがprm1の一個しかなかったら、itemsのitem全部にprm1を適用
prmsがitemsと同じ数だけ複数入ってたら、順番通りにitemsにprmsを適用
って感じ

もちろん場合分けでいいとは思うけど
再帰内にかぶる処理があるのでどうしたもんか
2023/08/31(木) 00:48:42.81ID:+B6kd0y50
>>846
prmsの要素数が1個でもなくitemsと同じ要素数でもない場合はどうするの?
そのmin(i, max_prm_index)でやってるようにprmsの最後の値を適用し続けたいの?
2023/08/31(木) 00:50:53.88ID:+B6kd0y50
prmsの最後の値を適用し続けたいということであれば
なるべくその意図を反映したコードにする

from more_itertools import repeat_last
zip(items, repeat_last(prms))
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況