- 1 名前:デフォルトの名無しさん mailto:sage [2021/12/27(月) 01:38:10.93 ID:GepmXCuJ.net]
- 当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。 「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。 このスレッドは「お勉強」スレのほうには書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。 ★エラーを解決したい場合★は、 表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、 実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。 Pythonの★ソースコードをそのまま5ちゃんに貼るとインデントが崩れてチヌ★ 【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】掲示板の仕様なので、 プログラム文は↓等の、いわゆるコードうp用サイトに貼ってこいください。 ttps://techiedelight.com/compiler/ Run Code機能あり。 ttp://ideone.com/ デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。 ttp://codepad.org/ ほぼ直
- 91 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 19:08:21.23 ID:nCUrJFSS.net]
- for f in [その他の処理1, その他の処理2]:
_if とreturn _f() とかでいけるかなあ?
- 92 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 19:52:22.08 ID:hY/A3e1V.net]
- 全角文字を識別子にするのは
区別が付きにくい文字があるので あんまり賛成できないなあ そういう文字を使わないのならいいけど 例えばひらがなの「へ」とかたかなの「ヘ」とか
- 93 名前:デフォルトの名無しさん [2022/01/26(水) 20:03:57.46 ID:Dd3LK1vU.net]
- >>89
文脈ないから何がしたいかわからんけど 代入伴うガード節みたいなことなら if a := get(): retur
- 94 名前:n
処理 と各メイン処理前に書くことはある if not (data := get()): return のが読みやすいか [] - [ここ壊れてます]
- 95 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 20:53:13.08 ID:BRzp4Bf7.net]
- >>90>>92
反応ありがとうございます。説明が悪くて申し訳ないです。 プリプロセッサのマクロみたいに、ifとreturnもまとめて関数の外に くくり出すにはどうしたらいいんだろうという疑問です。 関数内関数とかにすると、返り値を判定しないといけないじゃないですか。 それも外に(別に関数の中でもいいですけど)出したいなと。 愚直に二回書くか、返り値を判定すれば、それで済むは済むのですが、 多分言語的に解決する方法はあって、それを知っておいた方が美しいかなと。
- 96 名前:デフォルトの名無しさん mailto:sage [2022/01/27(木) 02:04:56.13 ID:xQdC/mnh.net]
- プリプロセッサですか... というわけで import を悪用してみた。
return
- 97 名前:とか飛び出すみたいのは... 例外でもいいですか?
以下インデントがどうなるかわからない(全角を使ってみた)。 元のコードより複雑になっているというのは気のせい。 var.py: ---------------------- a = -10; ---------------------- check.py: ---------------------- import var if var.a > 0: raise Exception('check') ----------------------- main.py: ----------------------- import var import check def foo(): try: # 処理1... の後 var.a に値をセット reload(check) # 処理2... の後 var.a に値をセット reload(check) except Exception as e: return "end" return "ok" ret = foo() print("ret = " + ret) ----------------------- [] - [ここ壊れてます]
- 98 名前:デフォルトの名無しさん mailto:sage [2022/01/27(木) 09:13:31.95 ID:q7HNZ+k9.net]
- しかしimportがただのプリプロセッサでないのがわかったw
変数のスコープがあったり二重読み込みがデフォで抑制されたり。
- 99 名前:デフォルトの名無しさん mailto:sage [2022/01/27(木) 10:47:35.58 ID:BLpAKzVu.net]
- 親関数が戻る所は、
resp = await asyncio.gather(*exec_list)みたいになってるので、 普通にreturnして欲しい所存です……
- 100 名前:デフォルトの名無しさん mailto:sage [2022/01/27(木) 11:09:39.82 ID:kowYjA+c.net]
- Ruby のrequire は、ロードパスからモジュールを探して、読み込んで実行する。
ただし、同じものは2回以上実行しない 一方、load は、同じものでも再実行できる include は継承チェーンに、mix-in されるから、 関数名を探索できるようになる Rubyの作者・まつもとが、 require・includeの違いが分からない香具師は、プログラマーに向いていないと言った ファイルを分割して書いて、読み込んで実行したり、継承チェーンを作ったりなど、 オブジェクト指向を作る、インタープリタの内部の仕組みに興味が無いような人は、 プログラマーに向いていない プログラマー向きの香具師は、内部の仕組みに興味を持つ。 好奇心・探究心、学者
- 101 名前:デフォルトの名無しさん mailto:sage [2022/01/27(木) 17:11:22.17 ID:xQdC/mnh.net]
- >>96
>>94みたいのは駄目すかw returnというのは関数の呼び出しと表裏一体で、 関数を呼び出すところでその場所と状態を記憶して、処理が終わったらそこへ戻る。 関数の中でさらに関数を読んだらその新たな場所へしか戻れない。プリプロセッサは 関数じゃないのがミソ。 そうだなあ... Cのlongjumpみたいのが一応あるようだが.... まあそれも根本は例外 処理みたいなものだろうが... しかしさらに脱線していくようなw
- 102 名前:デフォルトの名無しさん mailto:sage [2022/01/27(木) 17:17:29.41 ID:O/Xb3RdK.net]
- 操作を記録して、コードを自動生成する方法を教えて下さい。
例えば記録開始後に、 ・すでに起動されているメモ帳の位置を変えて、そこに「あいう」と入力する。 と言った操作をしたら、それをコードにしてくれる感じです。 UWSCの動作記録機能のような物を想定しています。
- 103 名前:デフォルトの名無しさん mailto:sage [2022/01/27(木) 17:28:41.66 ID:aAqz06lG.net]
- マウスキーボードグローバルフックして記録するだけ
なんだけどwindowsのapi叩くことになるから(python向けの)情報少なくて大変かも c#とかでやったほうが楽だと思うよ
- 104 名前:デフォルトの名無しさん mailto:sage [2022/01/27(木) 19:18:15.13 ID:7tIXYF4b.net]
- マウスの動きをトレースするのは誤差が大きいので
できればキーボードマクロを使った方が正確にできる
- 105 名前:デフォルトの名無しさん mailto:sage [2022/01/27(木) 22:10:33.22 ID:/l3HfrsT.net]
- >>99
一応こういうのあるよ https://github.com/RMPR/atbswp
- 106 名前:デフォルトの名無しさん [2022/01/28(金) 20:23:11.50 ID:NkTLAq7B.net]
- fee = ['+送料715円', '+送料1650円', '+送料', '+送料750円', '+送料']
上記のリストを下記のリストになるように置換したいです。 newfee = ['+送料715円', '+送料1650円', '+送料0円', '+送料750円', '+送料0円'] どのようにしたらいいですか? re.subかre.se
- 107 名前:arch(書き方わからん).group().replace('+送料','+送料0円')で
いけそうかなーって思ってるんですがうまく書き方がわかりません newfee = [ここの記載がよくわからん for fee in fee] よろしくお願い申し上げます [] - [ここ壊れてます]
- 108 名前:デフォルトの名無しさん [2022/01/28(金) 20:31:33.73 ID:S2S29ZR7.net]
- \+送料$
- 109 名前:デフォルトの名無しさん [2022/01/28(金) 20:51:10.23 ID:S2S29ZR7.net]
- newfee = [re.sub(r'\+送料$', '+送料0円', f) for f in fee]
- 110 名前:デフォルトの名無しさん mailto:sage [2022/01/28(金) 20:56:55.92 ID:NkTLAq7B.net]
- >>105
ありがとうございます!!
- 111 名前:デフォルトの名無しさん mailto:sage [2022/01/28(金) 22:49:23.99 ID:GOayFGyf.net]
- djangoでdb登録する方法を教えて下さい
modelインスタンスをループで沢山作って最後にbulk_create()を使って登録するのは分かりましたがmodelが7つあります それぞれforeignkeyとそのrelated_nameで繋がっています この場合の要領が分かりません 雰囲気的に中心となるようなmodel(仮にAと呼ぶ)を見つけてそこに例えば他のモデルのインスタンスをAのforeignkeyに渡すような感じにすればいいんですか? もし複数渡したい時はどうすればいいですか? そしてAがmodel Bを参照しており、BがCを参照している時にインスタンスオブジェクトAからCに登録するにはどうすればいいですか?
- 112 名前:デフォルトの名無しさん [2022/01/29(土) 00:12:59.76 ID:5xe9daD4.net]
- >>103
>>> ['+送料0円' if f == '+送料' else f for f in fee] ['+送料715円', '+送料1650円', '+送料0円', '+送料750円', '+送料0円']
- 113 名前:デフォルトの名無しさん [2022/01/29(土) 13:40:24.15 ID:YRcqrgZl.net]
- 多分壊れてて、画像としては開けないjpgファイルがある(ビューワでも各種編集ソフトでもだめ)
im = pil.open(path) .formatとか.sizeは読める show() imagearray = np.array(im) はできない エラーはpermission denied ファイルは編集不可属性ではない 復元というか画像として読めるファイルを作成したいんだけど、なにをしてみたらいい?
- 114 名前:デフォルトの名無しさん mailto:sage [2022/01/29(土) 13:55:47.07 ID:s/Lqmbn4.net]
- どう壊れてるかによるからな
バイナリエディタで見てEOIがあるかとか、イメージデータが0000で埋まってないかをチェックして、データありそうならSOIからひとつず読み取ってみてどこが壊れてるか探す ヘッダーが逝ってるだけならわんちゃんありえるけど、サイズ見えるのじゃイメージデータ逝ってる可能性大だろうな
- 115 名前:デフォルトの名無しさん [2022/01/29(土) 16:36:36.82 ID:YRcqrgZl.net]
- >>110
むむ、そのへんの単語ググりながらやってみようと思ったんだけど もうバイナリエディタで読めないっすね えーまじか。そんなことあるのか ちなみにwindows的にはサムネイルの作成はできてる模様
- 116 名前:デフォルトの名無しさん mailto:sage [2022/01/29(土) 17:23:49.29 ID:nzagQ2IL.net]
- >>111
> もうバイナリエディタで読めないっすね ??? ディスクエラーになるとかか? > ちなみにwindows的にはサムネイルの作成はできてる模様 サムネはキャッシュされてるから以前は読めたんじゃね?
- 117 名前:デフォルトの名無しさん mailto:sage [2022/01/29(土) 17:34:30.94 ID:1f3+2daQ.net]
- とにかくそのjpgが入ってるドライブの他のファイルをどこかにバックアップするのが先
- 118 名前:デフォルトの名無しさん [2022/01/29(土) 17:49:41.23 ID:YRcqrgZl.net]
- >>112
stirlingで読み込みエラーです 1行も表示されず これサイズ見えてるから壊れててもデータはあると思ってたけど もう根本的に中身飛んでる気がするなあ。zip圧縮に失敗したときみたいな ゴミ箱に入れたら、もう動かせなくなったし pilでバイナリ読んで変換してどうにか的な話をしたかったんだけど 関係なくなってきたので諦めます。スレ汚し失礼しました
- 119 名前:デフォルトの名無しさん mailto:sage [2022/01/29(土) 22:08:45.86 ID:S/AYuT16.net]
- Ruby on Rails では、画像アップロードのチェックに、
ImageMagick, libvips などを使う 容量チェックだけではダメ。 1px * 1,000px とか、極端なサイズもダメ 他にも、ウイルス埋め込みとか、様々な攻撃を排除しないといけない
- 120 名前:デフォルトの名無しさん [2022/01/29(土) 22:43:34.15 ID:vSaHMnG7.net]
- >>115
死ねゴミ
- 121 名前:デフォルトの名無しさん mailto:sage [2022/01/30(日) 03:46:00.30 ID:XZx8eYmT.net]
- PILなんかの便利ラッパーじゃなくて、libjpeg直接触らないとどうしようもないでしょ。PILはJPEGの読み込み自体はlibjpegに丸投げして終わりなんだから。
- 122 名前:デフォルトの名無しさん mailto:sage [2022/01/30(日) 11:09:15.57 ID:N55kLChf.net]
- ディレクトリエントリ以外壊れてる可能性のが高いだろ普通に
- 123 名前:デフォルトの名無しさん mailto:sage [2022/01/30(日) 13:07:19.08 ID:DCMe3nw9.net]
- おっぱい画像じゃなかったらすれ違いだぞ
- 124 名前:デフォルトの名無しさん [2022/01/30(日) 23:10:06.45 ID:Ps75IfQG.net]
- > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑) キチガイの嘘つきの低レベルFランの、 朝鮮ゴキブリBot君は、 チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な ことはよーくわかったよ。 ホントなにもできない朝鮮ゴキブリBot君! くそチョンw くそチョンはウンコを食べる糞食人種w 朝鮮人はゲリ便をじゅるじゅると うまそうに食うw 在日は強姦を繰り返す犯罪者! 皆殺しにすべし!
- 125 名前:デフォルトの名無しさん mailto:sage [2022/02/01(火) 22:05:36.75 ID:hOl6ciiB.net]
- Tkinterで複数のウィンドウを非表示状態で生成し、
後に表示状態にするということをしたいのですがうまくいきません threadingを使ってスレッド化することでmainloopを複数走らせることができると思っていたのですが、 最初の1つ目のウィンドウで止まってしまいます 何か解決法はありませんでしょうか ttps://pastebin.com/BUj46Q8J
- 126 名前:デフォルトの名無しさん mailto:sage [2022/02/01(火) 22:51:56.51 ID:P6zC/C5s.net]
- >>121
走らせてないからわからんけどshowはスレッドをインスタンス化するときにコールしたらだめな気がするぞ 返り値を渡すんじゃなくて関数自体を渡すんだ
- 127 名前:デフォルトの名無しさん mailto:sage [2022/02/01(火) 22:54:40.84 ID:P6zC/C5s.net]
- 27行目
thread = threading.Thread( target=show, args=(root,) ) でどうだ
- 128 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 00:33:40.49 ID:mBcvYcjV.net]
- https://stackoverflow.com/questions/48045401
これがホントならプロセス分けるしかないね
- 129 名前:121 mailto:sage [2022/02/02(水) 06:41:57.54 ID:6CCAEreu.net]
- ありがとうございます
rootがいくつもあっても、mainloop()はどれか一つでも走らせればそれで良いのですね! 最後を for root in window_list: root.deiconify() window_list[0].mainloop() とすることで生成した分すべて表示できました
- 130 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 10:11:06.05 ID:RL/7fH2d.net]
- 一般的なGUIで、UIにさわれるのは1個のスレッドだけだね。
そこでメインループを回して、他のスレッドは処理を渡したりするだけで自らUIを操作 しないようにする。
- 131 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 21:39:50.40 ID:EL6vvzM+.net]
- Pythonの勉強を始めて1ヶ月程度のプログラミング自体初心者です
for文でfor_in rangeというのを見かけたのですが、この場合の_って何を表すんでしょうか? 関数名とは違うのでしょうか?
- 132 名前:デフォルトの名無しさん [2022/02/02(水) 21:46:34.25 ID:dtxLg5iw.net]
- https://blog.pyq.jp/entry/Python_kaiketsu_180420
アンダーバー(アンダースコア) python 変数名 意味
- 133 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 21:48:19.29 ID:U+ueKPSe.net]
- 変数だけど使わない変数を慣習的にアンダーバーを使っている
繰り返したい処理があるときはfor i in range(10)とか使うと思うけどそのforブロック内でiを使わないときはiじゃなくてfor _ in range(10)って感じ
- 134 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 21:52:54.86 ID:PDm/NhWY.net]
- https://docs.python.org/ja/3/reference/lexical_analysis.html#reserved-classes-of-identifiers
公式の日本語は > Elsewhere, _ is a regular identifier. ここの訳が変だな
- 135 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 22:12:17.07 ID:EL6vvzM+.net]
- レスありがとうございます
関数名じゃなくて変数名でしたね、失礼しました 丁寧に説明してもらっておきながら申し訳ないのですが、使わないとか定義しないとかいまいちピンと来ませんでした… もうちょっと自分で色々書いてみてからまた来ます
- 136 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 22:16:55.84 ID:U+ueKPSe.net]
- 使うパターン
for i in range(10): print(i) 使わないパターン for _ in range(10): counter += 1 すげー適当な例だけどわかるかな?
- 137 名前:デフォルトの名無しさん [2022/02/02(水) 22:29:06.02 ID:dtxLg5iw.net]
- a, b, _, _, e = get_data()
5つ返ってくるけど要るのはa,b,eだけ みたいな
- 138 名前:デフォルトの名無しさん [2022/02/02(水) 23:51:53.90 ID:ig8XBRXZ.net]
- >>130
おかしいもなにも、_に関しては訳されてなくない? どこのこと
- 139 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 13:14:00.01 ID:euzyX/2k.net]
- djangoで「モデルAのオブジェクト」を作ってこのオブジェクトにforeignkey貼ってる「モデルBのオブジェクト」のforeignkeyの所の変数にAのオブジェクトを渡してから「モデルBのオブジェクト」を作ってAをsave()したとする
この後Bのオブジェクトをsave()したらちゃんとA_idが保存されるの? ややこしいけどなんと説明すればいいのやら 因みにtransaction.atomicは必要だよな?
- 140 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 14:00:58.08 ID:euzyX/2k.net]
- >>135
これ今試したけど出来るっぽいな 難しいわ なんで参照渡しでもないのに出来るのかさえ分からん
- 141 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 15:25:43.23 ID:lrjvvrdU.net]
- Aをsave()した時点でBのA_idに反映されてそうだけど
- 142 名前:初心者の質問です。 [2022/02/05(土) 03:42:35.77 ID:/8OR3rgW.net]
- Pythonというのを使うと、他のアプリ(windows) 例えば、市販のビジネス
ソフトに連動させて入力やら出力やらを自動化できたりするのですか? 他のアプリは、MS Excel などに限定されるのですか? それとも、電機屋で売っているような例えば、年賀状ソフトとか ビジネス会計ソフトとか、カレンダースケジュールソフトとか なんでも、入力を自動化したり単純化してPythonから指令して 動かすことができるのでしょうか?
- 143 名前:デフォルトの名無しさん [2022/02/05(土) 04:28:39.44 ID:6miGEtTC.net]
- 無理です
- 144 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 08:06:12.28 ID:XLfwOUFr.net]
- >>138
APIが用意されてないとそのレベルでの操作は無理。 Google calendarなんかはGASでweb apiを自作すればいけるが、市販のソフトはそこまで親切ではない。 マウス操作やキー操作を自動化することは可能。
- 145 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 08:59:49.70 ID:6Mb184NV.net]
- 作り込めばできるけど作業コストがかかる
それをやってくれる会社も存在するくらい MacならまともなソフトはAppleEvent実装してるから比較的楽
- 146 名前:デフォルトの名無しさん [2022/02/05(土) 09:01:16.95 ID:/8OR3rgW.net]
- >>139
>>140 おはようございます。 お二方返信ありがとうございます。 残念ながら無理なんですね。 (API アプリ プログラム インターフェース) A銀行勘定システムーAPI−B銀行勘定システム のような感じでAPIを開発しないといけないんですね。 これってやっぱり大変でしょうね。
- 147 名前:デフォルトの名無しさん [2022/02/05(土) 09:03:23.27 ID:/8OR3rgW.net]
- >>141
やっぱり、金がかかって ビジネスになってるんですね。 事情がわかりました。 (原理がわかってないのが悲しいですが・・・) 本当にありがとうございました。 皆さん良い週末をお過ごしください。
- 148 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 09:16:13.61 ID:sxrVj7bO.net]
- >>142
中央銀行の意味知っている? 銀行間で直接取引はしない
- 149 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 09:20:50.77 ID:nhwXwcp2.net]
- API を分かってない気がする。
API を作る = AとB銀行それぞれにアプリ連携用インターフェースを追加する API を使う = A銀行に用意されているAPIとB銀行で用意されているAPIを使って両銀行間を接続するプログラムを作る 使う方であれば python が使える可能性はある。 複数の異銀行システムのAPIを1社で実装する仕事なんてないと思うがなー。
- 150 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 10:06:24.03 ID:UC+QWPwn.net]
- 全部できるよ。ただあなたの能力とヤル気に依存する
銀行の口座確認(送金や振り込み操作以外)ならたいていはワンタイムパスワード不要なとこ多いから 普通にpythonでブラウザ操作するだけだし(ワンタイムパスワード使うのもハード必要になるけどがんばればできる) 市販ソフトの操作はそのソフトのウインドウ叩いて情報読み取ったり、最悪画面画像の認識で読み取ればいい 入力はマウスやキーをpythonから操作するだけ 「python ブラウザ操作」「python getwindowtext」「python キー操作 送信」などぐぐれば
- 151 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 10:43:12.54 ID:x0YbOETD.net]
- やってくれって言われたら
後ろ向いて舌出してうえ〜ってリアクションしちゃうな
- 152 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 11:13:45.51 ID:piACNvDy.net]
- https://pastebin.com/p4sKEE76
pynputでの左クリック検知と、tkinterのlabelでの左クリック検知を両立させることは可能ですか? pynputが左クリックイベントを全て奪ってしまい、labelが反応しません ランチャーを作ってまして、やりたいことは、 @ デスクトップを左クリックしたらウィンドウを表示する、 A ウィンドウのラベルを左クリックしたらウィンドウを閉じる、 B ウィンドウが表示されている状態でウィンドウ以外の場所を左クリックしてもウィンドウを閉じる という動作です @とBをpynputで、Aをtkinterのlabelでと思ったのですが、うまくいきませんでした
- 153 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 12:09:38.48 ID:LVRrrJUT.net]
- 質問している人とは別の人物ですが、
画面の変化するのを待って 画面が安定してから 操作を始めるというのは可能ですか?
- 154 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 12:12:06.54 ID:XLfwOUFr.net]
- >>149
安定が何を指してるかはわからんけど、画像処理周りの話ならフレーム差分とってしきい値処理すればいいんじゃないか? PILのImageGrabでスクショは読み取れる
- 155 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 12:16:27.17 ID:LVRrrJUT.net]
- >>150
ブラウザとか読み込むときに「読み込み中」とか出たり リダイレクトを始めたりするじゃないですか、 それらの動作が一通り終わって安定するまで 待ち合わせることは可能なんでしょうか?
- 156 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 12:36:57.02 ID:UC+QWPwn.net]
- ブラウザは読み込み終わったってイベントが来るよ。それを待ってURLとで判定すればいい
- 157 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 12:48:54.51 ID:XLfwOUFr.net]
- >>151
seleniumの話か。 152の言うとおりイベント待ちすればいい。
- 158 名前:148 mailto:sage [2022/02/05(土) 12:54:59.73 ID:piACNvDy.net]
- https://pastebin.com/hwdHebzT
>>148ですがpynputのon_moveでマウス移動を検知して、 ウィンドウ上にポインタあるときはon_clickで何もしないようにして動くようになりました ただマウス動かすたびにウインドウ情報の取得と座標の比較を行うので高コストです… 他に良い実装はないでしょうか?
- 159 名前:デフォルトの名無しさん [2022/02/05(土) 12:59:34.70 ID:/8OR3rgW.net]
- >>144-147
みなさま すみませんです。 何れにしましても 勉強になりました。 >「python ブラウザ操作」「python getwindowtext」 >「python キー操作 送信」 で勉強してみます。 合併金融機関で旧銀勘定システムの 統合とかがむずかしくてというような ことを風の便りにききましたので 妙ちくりんな例示になりました。
- 160 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 13:17:57.22 ID:UC+QWPwn.net]
- >>154
クリックするときだけ座標のウインドウ見たら?
- 161 名前:148 mailto:sage [2022/02/05(土) 13:18:56.20 ID:piACNvDy.net]
- >>156
たしかにそうでした… 書き直してみます
- 162 名前:148 mailto:sage [2022/02/05(土) 13:38:51.69 ID:piACNvDy.net]
- https://pastebin.com/EzZX8abA
最終的にウィンドウハンドルを識別に使うことで複数ウィンドウにも対応できました ありがとうございました
- 163 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 13:47:41.85 ID:UC+QWPwn.net]
- ランチャーの上にほかのウインドウがあったら期待通り動かなさそうだな
windowfrompointかな
- 164 名前:148 mailto:sage [2022/02/05(土) 14:20:31.51 ID:piACNvDy.net]
- >>159
ありがとうございます、確かに重なってる部分をクリックすると、 上に他のウインドウがあるのにランチャー上にいるという判定になっていました 教えていただいた関数を使って作り直してみます
- 165 名前:148 mailto:sage [2022/02/05(土) 15:31:23.48 ID:piACNvDy.net]
- GetWindowPoint関数が返すのがラベルのウインドウハンドルで詰まりましたが、
GetParentで親ウィンドウのウィンドウハンドルを取得することでうまくいきました
- 166 名前:148 mailto:sage [2022/02/06(日) 18:24:09.07 ID:3q8vI9na.net]
- 皆さんWindowsの環境は何を使っていますか?
先輩がAnacondaを使っていたので自分もこれで始めたのですが、 pyファイルをダブルクリックしても起動できなくて困っています
- 167 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 18:46:40.90 ID:As9Eeh+2.net]
- anacondaはダブルクリックして使うような用途向けじゃないから・・・
それでもやりたいならユーザーフォルダのenvの中にあるpythonを関連付けして、パスも通しておいたらいけるんじゃないのか?
- 168 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 19:14:00.88 ID:4Gtoye46.net]
- エクスプローラ上でshift+右クリックするとコンソールを開くオプション出てくるからそこから実行するのも手だね
- 169 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 20:11:49.90 ID:UpadUQRd.net]
- pyはIDEに関連付け変えた方が利便性高そう
コンソール不要なアプリはpywにするし
- 170 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 02:26:12.83 ID:8Of01QOa.net]
- 前は(必要に迫られない限り絶対に使いたくない)Anacondaだったけど一年半くらい前に公式のPythonに出戻った
それまではpylauncher+Anacondaだったね
- 171 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 04:15:45.66 ID:/WFZHSQq.net]
- >>165
input()使ってコンソール表示をキープする使い方もあるのでそのままがいい
- 172 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 08:07:41.99 ID:X3clQbRB.net]
- forループを指定の時刻になったら抜け出したいんだが何か方法ありますか?
例えば21時になったらループを抜けたいです
- 173 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 08:25:36.92 ID:nOkVXb94.net]
- now=datetime.datetime.now().hourで現在時刻を取得してif now>21:みたいな感じでいけるのかな?
- 174 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 11:33:42.97 ID:v1HyCHbN.net]
- >>168
whileループじゃなくてforループ?
- 175 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 12:11:38.49 ID:Afq51Jp9.net]
- signal.alarmで割り込んでグローバルに参照できる情報を更新
forではそこを確認するだけ あるいはEventMachineみたいなスケジューラに乗っかる
- 176 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 20:36:04.90 ID:uf+aDjpD.net]
- 文字列のリスト渡す引数があるんですが、1つだけならリストじゃなくて文字列1つだけでも渡したいんです
文字列だけで渡すとforで1文字ずつのループになってしまいます。 リストで渡したみたいに同じようにforで1回回したいんですが何か方法ありますか
- 177 名前:デフォルトの名無しさん [2022/02/07(月) 20:37:56.01 ID:WNsmATfv.net]
- 文字列が来たらリストに入れてあげればいいのでは
- 178 名前:デフォルトの名無しさん [2022/02/07(月) 20:45:24.77 ID:WJa2Jvem.net]
- if isinstance(x,str): x=[x]
- 179 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 20:48:11.70 ID:Afq51Jp9.net]
- https://docs.python.org/ja/3/library/functools.html#functools.singledispatch
でオーバーロード書けるけど好きじゃない
- 180 名前:148 mailto:sage [2022/02/07(月) 22:02:57.91 ID:QDp/4Uhu.net]
- メモリの確保と解放を自分ですることって可能ですか?
tkinterのラベルに画像を表示したいのですが、 tkinter.PhotoImage()の戻り値が勝手に開放されてしまい表示されません
- 181 名前:148 mailto:sage [2022/02/07(月) 22:05:00.21 ID:QDp/4Uhu.net]
- >>163
そうなのですね、やっぱり純正?Pythonがいいんでしょうか… >>164 Win11だからか出てきませんでした
- 182 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 22:22:44.80 ID:dQ2UCnOY.net]
- >>177
win11なら幸運だ windows terminalがプリインストールされているのでは? なければストアから落とすとpowershellを直接開ける。 設定次第でwslもいけるぞ
- 183 名前:148 mailto:sage [2022/02/07(月) 23:12:32.22 ID:QDp/4Uhu.net]
- >>178
windows terminal、入ってました ただ使い方がよく分からなかったので、時間のあるときに調べてみます ありがとうございます
- 184 名前:デフォルトの名無しさん [2022/02/08(火) 05:30:13.15 ID:nYjjFW0t.net]
- tkinter photoimage 表示されない で検索しよう
秒で解決するから photo = tk.photoimage(画像) widget = tk.widget(master, image=photo)
- 185 名前:デフォルトの名無しさん mailto:sage [2022/02/08(火) 06:33:41.40 ID:x7KPLs8u.net]
- >>180
ありがとうございます インスタンス変数周りについて理解しました https://pastebin.com/XUdUcPEz 説明が複雑になってしまうと思い後出しになってしまったのですが、 ソースを短く手直ししてアップロードしました 今回はItemクラスにiconインスタンス変数を持たせて、ここにPhotoImageの戻り値を入れています そしてItem.iconから、ラベルを作成しています 本当はラベル作る関数にItemクラスのリストを渡して作らせているのですが、 この書き方でも再現されました よろしくおねがいします
- 186 名前:デフォルトの名無しさん mailto:sage [2022/02/08(火) 07:11:21.68 ID:x7KPLs8u.net]
- >>181
itemをLauncherのself.item_listに入れたら表示されるようになりました Item.iconはインスタンス変数だったけど、itemが一時的な変数で開放されちゃってたのかな… ただ関数を再帰呼び出ししている元のソースではこの手法でもだめでした 難しい
- 187 名前:デフォルトの名無しさん [2022/02/08(火) 07:53:09.80 ID:gLJTNggL.net]
- いやだからワンクッション置けっつの
まず生成しろ p = photoimage(i) それを使え w(image=p) もっと単純なテストケースで試せ 上手くいく場合と、いかない場合の境界線を探せ
- 188 名前:デフォルトの名無しさん mailto:sage [2022/02/08(火) 12:03:45.73 ID:Wt+Lt5co.net]
- >>182
グローバルなリストなりなんなりにItemクラス全部ぶち込んでいけばいいだけ
- 189 名前:デフォルトの名無しさん mailto:sage [2022/02/08(火) 21:50:34.21 ID:9OOJa9HQ.net]
- クロージャとデコレータの違いが良くわかりません
どなたか猿でも分かるように説明お願いします
- 190 名前:デフォルトの名無しさん mailto:sage [2022/02/08(火) 22:13:40.37 ID:8MdYtPVO.net]
- >>185
なぜその2つが同じ(ようなもの)だと思ったのか理由を少し書いてくれない?
- 191 名前:デフォルトの名無しさん [2022/02/08(火) 23:31:00.76 ID:nzlDnO0s.net]
- デコレータはクロージャで処理を追加する際の糖衣の認識
def logger(func): __def inner(*args,**kwargs): ____print(‘start’) ____func(*args,**kwargs) ____print(‘end’) __return inner @logger def add(x,y): __print(x+y) デコレータは↓を簡単に表記する add=logger(add)
|

|