【まず1嫁】くだすれPython(超初心者用) その56
■ このスレッドは過去ログ倉庫に格納されています
当スレに★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/ ほぼ直感的に使える。Run codeボタンあり。 ttp://pastebin.com/ まずまずシンプル。 ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。 ◇Python公式◇ http://www.python.org/ ◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi 〇前スレ〇 【まず1嫁】くだすれPython(超初心者用) その55 https://mevius.5ch.net/test/read.cgi/tech/1633070807/ 次スレたては >>985 あたりが挑戦する。 ### END OF TEMPLATE ### とにかくそのjpgが入ってるドライブの他のファイルをどこかにバックアップするのが先 >>112 stirlingで読み込みエラーです 1行も表示されず これサイズ見えてるから壊れててもデータはあると思ってたけど もう根本的に中身飛んでる気がするなあ。zip圧縮に失敗したときみたいな ゴミ箱に入れたら、もう動かせなくなったし pilでバイナリ読んで変換してどうにか的な話をしたかったんだけど 関係なくなってきたので諦めます。スレ汚し失礼しました Ruby on Rails では、画像アップロードのチェックに、 ImageMagick, libvips などを使う 容量チェックだけではダメ。 1px * 1,000px とか、極端なサイズもダメ 他にも、ウイルス埋め込みとか、様々な攻撃を排除しないといけない PILなんかの便利ラッパーじゃなくて、libjpeg直接触らないとどうしようもないでしょ。PILはJPEGの読み込み自体はlibjpegに丸投げして終わりなんだから。 ディレクトリエントリ以外壊れてる可能性のが高いだろ普通に > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^ あー、ホンッとに思い出すなあ(笑) キチガイの嘘つきの低レベルFランの、 朝鮮ゴキブリBot君は、 チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な ことはよーくわかったよ。 ホントなにもできない朝鮮ゴキブリBot君! くそチョンw くそチョンはウンコを食べる糞食人種w 朝鮮人はゲリ便をじゅるじゅると うまそうに食うw 在日は強姦を繰り返す犯罪者! 皆殺しにすべし! Tkinterで複数のウィンドウを非表示状態で生成し、 後に表示状態にするということをしたいのですがうまくいきません threadingを使ってスレッド化することでmainloopを複数走らせることができると思っていたのですが、 最初の1つ目のウィンドウで止まってしまいます 何か解決法はありませんでしょうか ttps://pastebin.com/BUj46Q8J >>121 走らせてないからわからんけどshowはスレッドをインスタンス化するときにコールしたらだめな気がするぞ 返り値を渡すんじゃなくて関数自体を渡すんだ 27行目 thread = threading.Thread( target=show, args=(root,) ) でどうだ ありがとうございます rootがいくつもあっても、mainloop()はどれか一つでも走らせればそれで良いのですね! 最後を for root in window_list: root.deiconify() window_list[0].mainloop() とすることで生成した分すべて表示できました 一般的なGUIで、UIにさわれるのは1個のスレッドだけだね。 そこでメインループを回して、他のスレッドは処理を渡したりするだけで自らUIを操作 しないようにする。 Pythonの勉強を始めて1ヶ月程度のプログラミング自体初心者です for文でfor_in rangeというのを見かけたのですが、この場合の_って何を表すんでしょうか? 関数名とは違うのでしょうか? 変数だけど使わない変数を慣習的にアンダーバーを使っている 繰り返したい処理があるときはfor i in range(10)とか使うと思うけどそのforブロック内でiを使わないときはiじゃなくてfor _ in range(10)って感じ レスありがとうございます 関数名じゃなくて変数名でしたね、失礼しました 丁寧に説明してもらっておきながら申し訳ないのですが、使わないとか定義しないとかいまいちピンと来ませんでした… もうちょっと自分で色々書いてみてからまた来ます 使うパターン for i in range(10): print(i) 使わないパターン for _ in range(10): counter += 1 すげー適当な例だけどわかるかな? a, b, _, _, e = get_data() 5つ返ってくるけど要るのはa,b,eだけ みたいな >>130 おかしいもなにも、_に関しては訳されてなくない? どこのこと djangoで「モデルAのオブジェクト」を作ってこのオブジェクトにforeignkey貼ってる「モデルBのオブジェクト」のforeignkeyの所の変数にAのオブジェクトを渡してから「モデルBのオブジェクト」を作ってAをsave()したとする この後Bのオブジェクトをsave()したらちゃんとA_idが保存されるの? ややこしいけどなんと説明すればいいのやら 因みにtransaction.atomicは必要だよな? >>135 これ今試したけど出来るっぽいな 難しいわ なんで参照渡しでもないのに出来るのかさえ分からん Aをsave()した時点でBのA_idに反映されてそうだけど Pythonというのを使うと、他のアプリ(windows) 例えば、市販のビジネス ソフトに連動させて入力やら出力やらを自動化できたりするのですか? 他のアプリは、MS Excel などに限定されるのですか? それとも、電機屋で売っているような例えば、年賀状ソフトとか ビジネス会計ソフトとか、カレンダースケジュールソフトとか なんでも、入力を自動化したり単純化してPythonから指令して 動かすことができるのでしょうか? >>138 APIが用意されてないとそのレベルでの操作は無理。 Google calendarなんかはGASでweb apiを自作すればいけるが、市販のソフトはそこまで親切ではない。 マウス操作やキー操作を自動化することは可能。 作り込めばできるけど作業コストがかかる それをやってくれる会社も存在するくらい MacならまともなソフトはAppleEvent実装してるから比較的楽 >>139 >>140 おはようございます。 お二方返信ありがとうございます。 残念ながら無理なんですね。 (API アプリ プログラム インターフェース) A銀行勘定システムーAPI−B銀行勘定システム のような感じでAPIを開発しないといけないんですね。 これってやっぱり大変でしょうね。 >>141 やっぱり、金がかかって ビジネスになってるんですね。 事情がわかりました。 (原理がわかってないのが悲しいですが・・・) 本当にありがとうございました。 皆さん良い週末をお過ごしください。 >>142 中央銀行の意味知っている? 銀行間で直接取引はしない API を分かってない気がする。 API を作る = AとB銀行それぞれにアプリ連携用インターフェースを追加する API を使う = A銀行に用意されているAPIとB銀行で用意されているAPIを使って両銀行間を接続するプログラムを作る 使う方であれば python が使える可能性はある。 複数の異銀行システムのAPIを1社で実装する仕事なんてないと思うがなー。 全部できるよ。ただあなたの能力とヤル気に依存する 銀行の口座確認(送金や振り込み操作以外)ならたいていはワンタイムパスワード不要なとこ多いから 普通にpythonでブラウザ操作するだけだし(ワンタイムパスワード使うのもハード必要になるけどがんばればできる) 市販ソフトの操作はそのソフトのウインドウ叩いて情報読み取ったり、最悪画面画像の認識で読み取ればいい 入力はマウスやキーをpythonから操作するだけ 「python ブラウザ操作」「python getwindowtext」「python キー操作 送信」などぐぐれば やってくれって言われたら 後ろ向いて舌出してうえ〜ってリアクションしちゃうな https://pastebin.com/p4sKEE76 pynputでの左クリック検知と、tkinterのlabelでの左クリック検知を両立させることは可能ですか? pynputが左クリックイベントを全て奪ってしまい、labelが反応しません ランチャーを作ってまして、やりたいことは、 @ デスクトップを左クリックしたらウィンドウを表示する、 A ウィンドウのラベルを左クリックしたらウィンドウを閉じる、 B ウィンドウが表示されている状態でウィンドウ以外の場所を左クリックしてもウィンドウを閉じる という動作です @とBをpynputで、Aをtkinterのlabelでと思ったのですが、うまくいきませんでした 質問している人とは別の人物ですが、 画面の変化するのを待って 画面が安定してから 操作を始めるというのは可能ですか? >>149 安定が何を指してるかはわからんけど、画像処理周りの話ならフレーム差分とってしきい値処理すればいいんじゃないか? PILのImageGrabでスクショは読み取れる >>150 ブラウザとか読み込むときに「読み込み中」とか出たり リダイレクトを始めたりするじゃないですか、 それらの動作が一通り終わって安定するまで 待ち合わせることは可能なんでしょうか? ブラウザは読み込み終わったってイベントが来るよ。それを待ってURLとで判定すればいい >>151 seleniumの話か。 152の言うとおりイベント待ちすればいい。 https://pastebin.com/hwdHebzT >>148 ですがpynputのon_moveでマウス移動を検知して、 ウィンドウ上にポインタあるときはon_clickで何もしないようにして動くようになりました ただマウス動かすたびにウインドウ情報の取得と座標の比較を行うので高コストです… 他に良い実装はないでしょうか? >>144-147 みなさま すみませんです。 何れにしましても 勉強になりました。 >「python ブラウザ操作」「python getwindowtext」 >「python キー操作 送信」 で勉強してみます。 合併金融機関で旧銀勘定システムの 統合とかがむずかしくてというような ことを風の便りにききましたので 妙ちくりんな例示になりました。 >>154 クリックするときだけ座標のウインドウ見たら? >>156 たしかにそうでした… 書き直してみます https://pastebin.com/EzZX8abA 最終的にウィンドウハンドルを識別に使うことで複数ウィンドウにも対応できました ありがとうございました ランチャーの上にほかのウインドウがあったら期待通り動かなさそうだな windowfrompointかな >>159 ありがとうございます、確かに重なってる部分をクリックすると、 上に他のウインドウがあるのにランチャー上にいるという判定になっていました 教えていただいた関数を使って作り直してみます GetWindowPoint関数が返すのがラベルのウインドウハンドルで詰まりましたが、 GetParentで親ウィンドウのウィンドウハンドルを取得することでうまくいきました 皆さんWindowsの環境は何を使っていますか? 先輩がAnacondaを使っていたので自分もこれで始めたのですが、 pyファイルをダブルクリックしても起動できなくて困っています anacondaはダブルクリックして使うような用途向けじゃないから・・・ それでもやりたいならユーザーフォルダのenvの中にあるpythonを関連付けして、パスも通しておいたらいけるんじゃないのか? エクスプローラ上でshift+右クリックするとコンソールを開くオプション出てくるからそこから実行するのも手だね pyはIDEに関連付け変えた方が利便性高そう コンソール不要なアプリはpywにするし 前は(必要に迫られない限り絶対に使いたくない)Anacondaだったけど一年半くらい前に公式のPythonに出戻った それまではpylauncher+Anacondaだったね >>165 input()使ってコンソール表示をキープする使い方もあるのでそのままがいい forループを指定の時刻になったら抜け出したいんだが何か方法ありますか? 例えば21時になったらループを抜けたいです now=datetime.datetime.now().hourで現在時刻を取得してif now>21:みたいな感じでいけるのかな? >>168 whileループじゃなくてforループ? signal.alarmで割り込んでグローバルに参照できる情報を更新 forではそこを確認するだけ あるいはEventMachineみたいなスケジューラに乗っかる 文字列のリスト渡す引数があるんですが、1つだけならリストじゃなくて文字列1つだけでも渡したいんです 文字列だけで渡すとforで1文字ずつのループになってしまいます。 リストで渡したみたいに同じようにforで1回回したいんですが何か方法ありますか if isinstance(x,str): x=[x] メモリの確保と解放を自分ですることって可能ですか? tkinterのラベルに画像を表示したいのですが、 tkinter.PhotoImage()の戻り値が勝手に開放されてしまい表示されません >>163 そうなのですね、やっぱり純正?Pythonがいいんでしょうか… >>164 Win11だからか出てきませんでした >>177 win11なら幸運だ windows terminalがプリインストールされているのでは? なければストアから落とすとpowershellを直接開ける。 設定次第でwslもいけるぞ >>178 windows terminal、入ってました ただ使い方がよく分からなかったので、時間のあるときに調べてみます ありがとうございます tkinter photoimage 表示されない で検索しよう 秒で解決するから photo = tk.photoimage(画像) widget = tk.widget(master, image=photo) >>180 ありがとうございます インスタンス変数周りについて理解しました https://pastebin.com/XUdUcPEz 説明が複雑になってしまうと思い後出しになってしまったのですが、 ソースを短く手直ししてアップロードしました 今回はItemクラスにiconインスタンス変数を持たせて、ここにPhotoImageの戻り値を入れています そしてItem.iconから、ラベルを作成しています 本当はラベル作る関数にItemクラスのリストを渡して作らせているのですが、 この書き方でも再現されました よろしくおねがいします >>181 itemをLauncherのself.item_listに入れたら表示されるようになりました Item.iconはインスタンス変数だったけど、itemが一時的な変数で開放されちゃってたのかな… ただ関数を再帰呼び出ししている元のソースではこの手法でもだめでした 難しい いやだからワンクッション置けっつの まず生成しろ p = photoimage(i) それを使え w(image=p) もっと単純なテストケースで試せ 上手くいく場合と、いかない場合の境界線を探せ >>182 グローバルなリストなりなんなりにItemクラス全部ぶち込んでいけばいいだけ クロージャとデコレータの違いが良くわかりません どなたか猿でも分かるように説明お願いします >>185 なぜその2つが同じ(ようなもの)だと思ったのか理由を少し書いてくれない? デコレータはクロージャで処理を追加する際の糖衣の認識 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) >>184 ありがとうございます とりあえず動くようになったのですが、多分色々な要因があって原因が特定できませんでした… また明日以降原因を探ってみようと思います Windowsでパスのセパレータが混在する原因を調べていたら、tkinterが原因だった filedialogとTkinterDnD2で発生するようだ こんな感じで対応してみた files = filedialog.askopenfilenames(filetypes=fTyp, initialdir = iDir) files = [str(pathlib.Path(p)) for p in files] なにかまずい点や、もっとスマートな書き方ありますか? pipでcshogiというパッケージを入れようとしたら cshogi/_cshogi.cpp:635:10: fatal error: 'init.hpp' file not found というエラーになったのですが、何したらよいでしょう。 依存関係で怒られたCythonやnumpyは入れました。 Python3.9.6でmacOS12.2です。 ググってみると、boost/python/init.hppというのが見つかりましたが、C++のboostライブラリをいれなさいということでしょうかね、、、 それソースからインストールじゃないか? pip install cshogi だけでいいと思う。試しにやったらほぼ素の環境で何のエラーもなく入ったぞ >>192 配布元のインストール方法を読んでもそんな気がしたし、多分そうだと思います。 が、私もpip install cshogiとしただけなんですよね。 venv環境下だからって、それも関係ないですよねえ。 あるいはM1マシンだから?と思ったけどintelマシンでも同じ、、、今晩から連休中にかけて、これを使って色々試そうとしてるので気になって仕事にならないです。 >>193 Windowsとlinuxはバイナリ配布してるようなので、なんとかビルドするしかないみたいです わざわざ試してみて頂いてありがとうございました。 >>190 初期化の直後でさえ禁止するのは流石に脳死では >>189 Windows のRuby で、フォルダをDrag & Drop した Ruby では、File.expand_path で、 Windows のパス区切り \ を、/ に変換できる \ を表示するために、\\ となっている p ARGV[ 0 ] #=> "C:\\Users\\Owner\\Documents\\あ" puts ARGV[ 0 ] #=> C:\Users\Owner\Documents\あ p File.expand_path( ARGV[ 0 ] ) #=> "C:/Users/Owner/Documents/あ" >>194 もう出てこなくていいと言われそうだけど進展。 Boostライブラリをインストールして以下のようにしたら進展しました。こんなテクがあるとは。 env LDFLAGS="-L /usr/local/Cellar/boost/1.76.0/lib/" CFLAGS="-I /usr/local/Cellar/boost/1.76.0/include/boost/python/" pip install cshogi 今度はこのパッケージのposition.hppがないって言われたけど、またちまちま調べます。pipの仕組みを勉強しないといかんですね。 ctypes難しいな memcopyが何故か超低速で困る richがデフォルトになったってリリースノートに書いてある ゲーム画面などが非アクティブでも、動作させることをPythonでやりたいです。 動作としては、ssupi+teseのようなものですが、 その仕組みも知りたいのですが、教えてください! https://pypi.org/project/icoextract/ EXEファイルからICOファイルを抽出したくてこれをインストールしたのですが、これって自分のコードでimportして使うライブラリじゃなくて単体のスクリプトですか? >>203 ダウンロードしたの開いたらオブジェクト記述されてて使えました >>202 挙動からしてリモートプロセスにDLLをロードしてWin32APIかWinProcをフックしてると思う PythonではDLLを出力できないので多分無理 PyQtってtkinterのようにラベルに画像とテキストを一緒に表示することって可能ですか? 探してもそれらしきもの見つからなくて >>207 これでやりたいこと実現できない? https://symfoware.blog.fc 2.com/blog-entry-2299.html >>208 ありがとうございます [画像]タイトル [画像]タイトル のようなリストを作りたくて、ページ拝見させていただきましたが少しイメージと違うかもしれません かなり強引ですが、moveの絶対位置レイアウトで、ラベル2つをペアにする方法で実装してみました https://pastebin.com/xSdLz5x7 pyqt、無理やりなら色々なことできそうですね ttp://codepad.org/ZCf9omJq クラス変数の初期化で「name 'NUM' is not defined」ってエラーが出るんだけど、何が原因なんだろうか? Python 3.10.2 64bit なんだけど、構文間違ってないよね? http://codepad.org/PRA31FBR codepadだと問題なく動作するから環境なのかな windows10+vscode+python3.10.2 64bit でだけ起きる固有の現象…? import sys print(sys.version) codepadはテンプレから外そっか ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる