- 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/ ほぼ直
- 477 名前:デフォルトの名無しさん [2022/03/11(金) 11:13:57.75 ID:Ozj2kjqC.net]
- >>468
Optional パイプで区切る書き方は3.10以降しかできない
- 478 名前:デフォルトの名無しさん [2022/03/11(金) 11:47:52.31 ID:jL2x9Ttt.net]
- すまん、書き方が悪かった
None必須なのかなと思って。引数に何も入れなかったらNoneじゃなくて未定義なのでは? あとこれが通るのも違和感ある 初期化はお
- 479 名前:汲ネので?
class Foo(): def __init__(self): __self.var : list[int] = [] # コイツ def insert(self, value: int): __self.var.append(value) [] - [ここ壊れてます]
- 480 名前:デフォルトの名無しさん mailto:sage [2022/03/11(金) 12:38:29.51 ID:mIOifofz.net]
- []は0個のintからなるListで正当
- 481 名前:デフォルトの名無しさん [2022/03/11(金) 12:59:50.35 ID:jL2x9Ttt.net]
- >>472
そうなのか… 了解した
- 482 名前:デフォルトの名無しさん [2022/03/13(日) 22:05:27.78 ID:Eg2cTOah.net]
- > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑) キチガイの嘘つきの低レベルFランの、 朝鮮ゴキブリBot君は、 チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な ことはよーくわかったよ。 ホントなにもできない朝鮮ゴキブリBot君! クソチョンw クソチョンはウンコを食べる糞食人種w クソチョンはゲリ便をじゅるじゅると うまそうに食うw
- 483 名前:デフォルトの名無しさん mailto:sage [2022/03/15(火) 21:22:46.39 ID:uGLxHLAf.net]
- PysimleGUIで使いたい機能が動かない事があるんですが、
もしかしてJupyterNotebookってPysimleGUIと相性が悪いとかってありますか?
- 484 名前:デフォルトの名無しさん mailto:sage [2022/03/15(火) 21:52:58.31 ID:EzbuthJ5.net]
- GUIは対話環境で作るものではないかな
- 485 名前:デフォルトの名無しさん mailto:sage [2022/03/15(火) 22:12:49.68 ID:fNg5XgpX.net]
- 「ボタンを作りますか?」
「何個作りますか?」 みたいな?
- 486 名前:デフォルトの名無しさん [2022/03/15(火) 22:19:24.09 ID:onaoSqbL.net]
- 逆にそれはjupyterがすごい
vsc使おう
- 487 名前:デフォルトの名無しさん mailto:sage [2022/03/15(火) 22:43:02.98 ID:IXWkoe6F.net]
- SmalltalkやZopeみたいな実行環境自体がGUIでIDEってやつかとおもったら
PySimpleGUIはJupyterの外なのか そこまでうれしくはないな
- 488 名前:デフォルトの名無しさん mailto:sage [2022/03/16(水) 00:21:06.85 ID:oBLq1y/2.net]
- >>477
具体的には例えばこのページ(ttps://knt60345blog.com/pysimpleguigui_popup2/)にある 「popup_get_file」を使ってファイル読み込みダイアログが簡単に出るみたいに書いてあるんですが 実際にはダイアログボックスが表示こそされるもののそれ以降はエラーだらけだったりって感じです。 >>478 VSCって奴がメジャー?だったりするんですかね 教本に載ってた通りに環境をセットアップした状態だったんですが やっぱそういう相性とかあるんですね・・・
- 489 名前:デフォルトの名無しさん mailto:sage [2022/03/16(水) 01:22:04.38 ID:PxZpXkqG.net]
- PySimpleGUI は、ネイティブアプリか?
一方、Ruby on Rails, Electron(Node.js + Chromium), Electron製のVSCode などは、 HTML, CSS, JavaScript を使ったウェブアプリ Jupyter Notebook もウェブアプリかも? そもそも、Windows 用のネイティブアプリがまともに動くのか、という疑問がある。 文字コードがUTF-8 じゃないし C# だけはWindows用言語だけど、それ以外の言語はすべてLinux用だから、 Windows用にコンパイルして、テストしているかどうか疑問
- 490 名前:デフォルトの名無しさん mailto:sage [2022/03/16(水) 16:29:22.67 ID:KaTnXwme.net]
- 手動でモジュールをインストール(コピー)するにはどうしたらいいのでしょう?
環境コピー元でpip install numpyするとlib/site-package/numpyができる 環境コピー先のlib/site-package/の中にそのnumpyフォルダを単純にコピーしてやればいいかと思ったのですが これだと'No module named numpy'になってしまいます コピー先でもpip installしてやればいいのですが、nuget ironpythonで作った環境なのでそれができず(方法がわからず) 単純にコピーしてやればいいやというのが発端で起きた疑問です
- 491 名前:デフォルトの名無しさん mailto:sage [2022/03/16(水) 17:17:48.57 ID:TuzuQZwE.net]
- >>482
ユーザじゃないからわからんけど ironpython PYTHONPATH でググってみて
- 492 名前:デフォルトの名無しさん mailto:sage [2022/03/16(水) 17:35:55.37 ID:KaTnXwme.net]
- searchPaths.Add(@"\Lib\site-packages");
engine.SetSearchPaths(searchPaths); でパスを追加すると、'Non-ASCII character '\xef' が出て numpyのpyファイルにエンコード指定を追加すると、今度はunexpected 'from'というようなエラーが出てしまうけれど エラーが出るということは正常にコピーできてるのかな。とりあえず動かなそうなので諦めます
- 493 名前:デフォルトの名無しさん [2022/03/17(木) 11:48:34.57 ID:BdzeKlQx.net]
- Windows+Python3.5です、少し古いかもしれないですがご勘弁下さい
インストールしてすぐです requestsを使いたくて適当な記事からいくつかサンプルコードを打ち込んだのですが、ImportError: No module named requestsというエラーを吐かれて まずコマンドプロンプトでpip install requestsを実行すべきなのがわかりました しかしpip install requestsで新しく生成されたディレクトリは〜\Lib\site-packages\requestsで pip install requests実行前に、Python自体をインストールした状態ではLib\site-packages\pip\_vendor\にもrequestsディレクトリがあり しかしこの\_vendor\requestsフォルダはコマンドプロンプトでもPythonの対話モードでも認識されておらず、存在していないような扱いでした このLib\site-packages\pip\_vendor\内のrequestsが、どのような経路で利用されるものなのか教えていただけないでしょうか? あまり余分にファイルを増やしたくないので、_vendor\requestsの方を利用できる手段があるならばそうしたいのです
- 494 名前:デフォルトの名無しさん [2022/03/17(木) 17:42:15.85 ID:o4f7Z1L+.net]
- >>485
ちなみに、サポート期限切れのバージョンを使わなきゃいけない理由はなに?
- 495 名前:デフォルトの名無しさん [2022/03/17(木) 17:46:15.17 ID:o4f7Z1L+.net]
- >>485
"Requests officially supports Python 2.7 & 3.6+." https://pypi.org/project/requests/ Requestsでも3.6以上じゃないとサポートしていない
- 496 名前:デフォルトの名無しさん [2022/03/17(木) 17:50:03.61 ID:o4f7Z1L+.net]
- >>485
pip install requestsは何もエラーや警告もでずに正常終了した? pip install requests実行してから、適当な記事からいくつかサンプルコードを打ち込んだときは、ImportError: No module named requestsはでなかったの? Windowsのバージョンはなに?
- 497 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 19:01:16.89 ID:Jm9Rrpw3.net]
- pip\_vendor\はあくまでもpip自体が使用するモジュール
他のパッケージでも_venderディレクトリに限らず依存モジュールを持ってる場合もあるが 特定バージョンに依存してたり改変されてる可能性もあるのでもったいないからと言って外部から使おうとしちゃだめよ
- 498 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 09:41:06.94 ID:hUwp9ZtX.net]
- ├label 判定処理の開始
│├┬処理1の演算(複数行) ││└演算の結果で「判定処理の終了」に飛ぶ ││ │├┬処理2の演算(複数行) ││└演算の結果で「判定処理の終了」に飛ぶ ││ │└┬処理3の演算(複数行) │ └演算の結果で「判定処理の終了」に飛ぶ │ ├label 判定処理の終了 こういうことやりたいんだけど、gotoを使わないでやる方法てある? gotoは推奨しないていってるよね。 フラグとか使って、前の判定がNGだったかを見る方法しかないのか? 自分が考えたのは1回だけのfor文の中にこの判定処理入れて、途中てbreakでgotoの代わりをしたんだが、
- 499 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 10:09:20.13 ID:wuzcJXmn.net]
- >>490
>自分が考えたのは1回だけのfor文の中にこの判定処理入れて、途中てbreakでgotoの代わりをしたんだが、 単純に処理1の終了時に結果に応じてreturnおけば、それで簡単に抜けられるぞ ガード節とか早期returnで調べると分かりやすいかも
- 500 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 10:59:49.92 ID:hUwp9ZtX.net]
- >>491
returnて関数以外に使えるの?
- 501 名前:デフォルトの名無しさん [2022/03/18(金) 11:41:42.28 ID:EttWLc7+.net]
- 端折りすぎて何がしたいかわからん
単純に if func1() elif func2() else func3() の構図じゃねそれ
- 502 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 11:54:17.65 ID:S88dx27z.net]
- 1→2→3→終了処理
1→2→終了処理 1→終了処理 この組み合わせになるってことだろ ifで簡単にやるなら ret = func1 if(ret) ret=func2 if(ret) ret=func3 finally()
- 503 名前:デフォルトの名無しさん [2022/03/18(金) 19:08:01.39 ID:RDOlUVi1.net]
- Flaskでつくったアプリをデプロイ先で"git clone", "pip install -e ."して入れていて、アップデートがあった場合はgit pullだけしています
こういう使い方ってpipで管理できない以外で何か問題ってありますか? 確かでなくても何となく気になる程度の事でも書いてもらえるだけでも有難いです
- 504 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 19:21:48.00 ID:/+NJrK2n.net]
- デプロイ時に公式リポジトリが落ちてる可能性あるからアリ
いまどきはコンテナ生成時にpip使うからそういうリスクないけども
- 505 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 20:29:14.39 ID:GX/cM61n.net]
- pypiのパッケージって存在が保証されるんじゃなかったっけ
- 506 名前:495 [2022/03/18(金) 20:31:32.06 ID:RDOlUVi1.net]
- すいません、言葉足らずでした
自分で作ったアプリでリポジトリも自前のリポジトリです
- 507 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 00:10:30.98 ID:k2W7TKOh.net]
- >>495
多言語のバージョンマネージャーのanyenv で使もう、rbenv のインストーラ https://github.com/rbenv/rbenv-installer/blob/main/bin/rbenv-installer これを簡単に説明すると、 Mac のHomebrew の場合と、Linux の場合で、処理を切り替えている 23行目 : rbenv="$(command -v rbenv ~/.rbenv/bin/rbenv | head -1)" で、-v : 「コマンド」を実行せず、実行対象となるコマンドやファイル名、 関数・エイリアスの定義を表示する 25行目 : if [ -n "$rbenv" ]; then で、-n : 文字列が1文字以上(ヌルではない)のとき真(not zero) つまり、初回はgit init して、2回目以降は、git pull する if [ -n "$rbenv" ]; then git pull --tags origin master else git init git remote add -f -t master origin https://github.com/rbenv/rbenv.git git checkout -b master origin/master fi
- 508 名前:499 mailto:sage [2022/03/19(土) 00:18:51.04 ID:k2W7TKOh.net]
- >>499
の続き 69行目からも同じ 69行目 : if [ -n "$ruby_build" ]; then で、-n : 文字列が1文字以上(ヌルではない)のとき真(not zero) つまり、初回はgit clone して、2回目以降は、git pull する if [ -n "$ruby_build" ]; then git pull origin master else git clone https://github.com/rbenv/ruby-build.git "${rbenv_root}/plugins/ruby-build" fi
- 509 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 10:05:43.22 ID:/3rRpnUt.net]
- こんにちは。
文字列を空行で分割したいのですが 良い方法が見つからず悩んでいます。 たとえば、文字列を2つに分割したいです。 良い方法があればヒントをいただけると助かります。 ---------はじまり aaa bbb <==== ここで分割したい ccc ddd ---------おわり
- 510 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 10:06:40.03 ID:/3rRpnUt.net]
- サンプルの文字列がおかしくなったので再度書き込みます。
bbb と ccc の間の空行で分割したいです。 aaa bbb ccc ddd
- 511 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 10:29:46.04 ID:GJHZpfLi.net]
- gap_vector とかの話?タダの宿題?
- 512 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 10:40:05.16 ID:93YS43Ns.net]
- pythonって簡単にできる命令が多いからそれ探しがちだけどそういうの考えなきゃいくらでもできるだろ
単純に配列に一行ずつ読み込んで、要素の中身をチェックして空ならそこまでの要素を切り出してくとか 全部をひとつの文字列として変数に入れて、split(\n\n)みたいな感じで分割すればいい
- 513 名前:デフォルトの名無しさん [2022/03/19(土) 12:41:10.12 ID:umrdatZo.net]
- プログラムの初心者です。
書籍を見ながら勉強しているのですが、 指示通りに入力しても正常に反応しなくて、どこが間違っているのかわかりません。 どなたか教えていただけませんか?
- 514 名前:デフォルトの名無しさん [2022/03/19(土) 12:51:46.78 ID:umrdatZo.net]
- >>505
import tkinter root=tkinter.Tk() root.title("初めてラベル") root.geometry("800x600") label=tkinter.Label(root,text="ラベルの文字列",font=("System",24)) label.place(x=200,y=100) root.mainloop() こう入力しましたがウィンドウが表示されませんでした。
- 515 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 12:59:31.84 ID:d0jgyl+4.net]
- ファイルの文字コードがSJISになってるんじゃないかな
UTF-8で保存し直してみたら
- 516 名前:デフォルトの名無しさん [2022/03/19(土) 13:06:08.80 ID:CtZdn1W5.net]
- >>506
vscode上ではそれで動く
- 517 名前:デフォルトの名無しさん [2022/03/19(土) 13:12:31.23 ID:umrdatZo.net]
- >>506
です。 こちらで解決しました! お騒がせしてすみません。
- 518 名前:デフォルトの名無しさん [2022/03/19(土) 19:10:36.78 ID:ozskatPz.net]
- if x : return
elif y : return else: 処理 みたいな、ガード連打するときなんか改行なしで行きたい気がするんだけど やっぱ許されぬ罪なのですか神父様
- 519 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 19:21:11.13 ID:guM/7r5m.net]
- elif/elseにする必要なくない?
- 520 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 20:04:09.95 ID:XBFSEYPW.net]
- Kotlinとか書いてると実にそう思うが、そんな将来は来ない
- 521 名前:デフォルトの名無しさん [2022/03/19(土) 20:47:24.25 ID:26UREXqN.net]
- if x or y:
__return else: 処理 じゃだめなん?
- 522 名前:デフォルトの名無しさん [2022/03/19(土) 21:45:40.71 ID:pKV2CHvJ.net]
- >>513
主題はそこじゃなくて アーリーリターンが続くような構造では改行レスのreturnと書きたいが、許されるかどうか ということでは
- 523 名前:デフォルトの名無しさん [2022/03/19(土) 21:51:17.02 ID:GkqZBVMg.net]
- 大学の研究室のコードとかはめちゃクソ改行レス
あいつら道具は動けばいいんでしょ精神だからぬ
- 524 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 23:15:07.02 ID:guM/7r5m.net]
- でもカッコやendいるわけじゃなし
1行returnくらいあってもむしろ見通しいいし
- 525 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 23:25:51.88 ID:ahrdIXj0.net]
- インデント強制するような糞言語だからなぁ
- 526 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 23:33:43.71 ID:1HyJgrvG.net]
- if x or y : return
orでつなげるなら一応一行でも行けるぽいけど
- 527 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 23:50:57.25 ID:1HyJgrvG.net]
- ガード節早期リターンをいれるなら
if elif elseでつなげるよりもifの連打でとことんリターンさせた方が条件の独立性も保たれるしわかりやすい てかelifやelse 意味ないし if a: return if b: return if c: return
- 528 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 23:53:44.87 ID:1HyJgrvG.net]
- でも基本的にフロー制御せずに済むようにするのが一番
- 529 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 00:04:23.22 ID:rHLSIq5o.net]
- jupyterlabのvpythonの拡張機能を入れようとしたら
3.3.2~3.4.0と5.3.2~5.4.0を同時に求められたんですがどうしたらいいですか https://i.imgur.com/tBr5qLg.png
- 530 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 07:50:41.23 ID:aLyHOWc6.net]
- >>501
Ruby では、空行は改行が2つ続くので、そこで分割すると、 input_text = <<'TEXT' あ い う え TEXT p ary = input_text.split( "\n\n", 2 ) # 最大で2分割 #=> [ "あ\nい", "う\n\nえ\n" ]
- 531 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 14:47:11.41 ID:ijxTKnpM.net]
- ---a.py-----
import b x="abc" b.kansu() ---b.py----- def kansu() global x print(x) a.pyを実行させて、その中で呼び出された関数kensuの中でa.pyで定義された変数xを参照したいんですけどできます。 xが定義されてないて言われるんだけど。
- 532 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 14:48:37.57 ID:PCBgHcJM.net]
- import b
b.kansu(x) --- def kansu(x):print(x)
- 533 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 15:01:05.51 ID:ijxTKnpM.net]
- >>524
そうやりたいけど、 b.kansu()をb.kansu(x)に変更するのが大変だから、質問してる。
- 534 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 15:11:44.38 ID:BhdZW57e.net]
- 質問です
大量にあるpng画像の中にある特定の画像が含まれる画像だけ抽出することはできますか? 例:オンラインゲームの撃破ログ時に特定の画像が画面内に現れるとする(ヘッドショットアイコンなど) その画像は不変であるが、画面内のどこにあるかは不特定。 特定の画像のimgを先に作成しておき、その画像が含まれる画像のpngデータを抽出したい。
- 535 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 15:14:23.73 ID:PCBgHcJM.net]
- pyscreeze.locate
- 536 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 15:23:33.53 ID:48q5H/E5.net]
- >>523
できるけどおすすめしない import b b.x = “abc" b.kansu() bにxのアクセサ(プロパティ)つくるのがましかな
- 537 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 16:35:08.52 ID:ijxTKnpM.net]
- >>528
出来ました。 ぜんぜんおすすめのような気がする。 ありがとうございました。
- 538 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 18:38:00.86 ID:qHCIAUP+.net]
- 変数じゃなく定数だったりすると、
本来は、別のconfig.pyあたりに書いて同じことをするんだっけ? import config as g g.x = 'abc' みたいに
- 539 名前:デフォルトの名無しさん [2022/03/22(火) 20:38:23.71 ID:Rdq5z+Lu.net]
- >>526
OpenCVのテンプレートマッチング
- 540 名前:デフォルトの名無しさん [2022/03/23(水) 15:54:16.61 ID:cM5bvOqV.net]
- bbox = [0, 0, 100, 100]
l, t, r, b = bbox l = 20 print(bbox) -> [20, 0, 100, 100] こういうことがしたいんですが、どうすればいいですか どういう単語で検索したらいいのかすらわかりません
- 541 名前:デフォルトの名無しさん mailto:sage [2022/03/23(水) 16:22:45.21 ID:9UuCXyQL.net]
- bbox[0]指定だと困る理由は?
- 542 名前:デフォルトの名無しさん [2022/03/23(水) 17:07:45.87 ID:cgrsbd9g.net]
- >532 辞書使って無理やり。
bbox = { 'l': 20, 't':0, 'r':100, 'b':100 } bbox['l'] = 20 bbox_values = list( bbox.values() ) print( bbox_values )
- 543 名前:デフォルトの名無しさん mailto:sage [2022/03/23(水) 17:18:26.23 ID:PTuUM17Q.net]
- あえてやるならこんなのとか
単語で検索するとしたらオブジェクト bbox=([0],[0],[100],[100]) l,t,r,b=bbox l[0]=20 print(bbox) ->([20], [0], [100], [100])
- 544 名前:デフォルトの名無しさん mailto:sage [2022/03/23(水) 17:27:30.54 ID:Uj8u7VlE.net]
- 配列順に意味があるなら
L,T,R,B = 0,1,2,3 bbox[L] = 20 とか 意味ないならクラスか辞書で保持すべき
- 545 名前:デフォルトの名無しさん [2022/03/23(水) 18:03:21.12 ID:cM5bvOqV.net]
- あーなるほど、そういう感じなんですね
わかりました。ありがとうございます なんか要素へリンクしてて l = bbox[0] print(l) # 0 l = 20 print(bbox[0]) # 20 みたいな感じになると思ってました bboxクラス作ります
- 546 名前:デフォルトの名無しさん mailto:sage [2022/03/23(水) 19:08:25.09 ID:OkzK5R+n.net]
- >>537
話ずれるけど、要素を外で書き換えるよりも箱の拡大縮小みたいなメソッドを作る方が一般的な気がします
- 547 名前:デフォルトの名無しさん mailto:sage [2022/03/25(金) 13:39:47.22 ID:uOX7ULt1.net]
- openpyxlでxlsxファイルを作る時にひとつのシートに複数のグラフを描こうとしたらThe same chart cannot be used in more than one worksheetってエラメ吐いたんだけど何でだろう
エラメでぐぐってもイマイチよくわからなかった
- 548 名前:デフォルトの名無しさん mailto:sage [2022/03/25(金) 14:33:26.73 ID:9HZfMhVl.net]
- chart2=chart1
とかやったりするとそうなるかも 複数チャート作る時に前のチャートを使いまわしたりしてない?
- 549 名前:デフォルトの名無しさん mailto:sage [2022/03/25(金) 15:27:53.71 ID:uOX7ULt1.net]
- 使い回しはしてましたね…
グラフ描く回数の分同じ記述を何度もするのが嫌だったから関数にして複数回呼び出せばいいかと思ってた グラフ描画部分の関数に引数として描画シートとか参照するセルの範囲を渡してやってたんだけどそれじゃ駄目だったか
- 550 名前:デフォルトの名無しさん mailto:sage [2022/03/26(土) 06:26:35.95 ID:m+SAsqZm.net]
- ダメってわけじゃないけど気を付けないといけないポイントがある
チャートとかのいわゆるオブジェクトのコピーはdeepcopy使う
- 551 名前:デフォルトの名無しさん mailto:sage [2022/03/26(土) 11:27:01.85 ID:qLHTxQhk.net]
- 配布するpyスクリプトで標準外パッケージを使いたいけどユーザの環境を汚したくないというときはvenvのような仮想環境か
pyinstallerでまとめるくらいしか手は無いのかな。 どちらもpython.exe自体をコピーして大げさなんで、jsのwebpackみたいなパッケージのバンドルができたらよかったんだけど。
- 552 名前:デフォルトの名無しさん [2022/03/27(日) 17:22:26.41 ID:nYvTQ02C.net]
- 質問なんです
GIMPのpython使っています # -*- coding: utf-8 -*- import glob,os,re file = glob.glob(‘C:\Users\name\Desktop\*.jpg’) で取り出したファイル名を使ってファイルを開こうとすると ファイル名が日本語の場合文字化けしてファイルが開けませんでした。 文字化けを直すにはどうしたら良いのでしょうか? print(file)した時に文字化け表示される文字は 'C:/Users/name/Desktop\\\x83A\x83\x8a\x83G\x83N\x83`\x83\x83\x83b\x83g\x91\xce\x89\x9e.JPG' こんな感じです よろしくおねがいします
- 553 名前:デフォルトの名無しさん [2022/03/27(日) 17:44:38.62 ID:p/i0WnQH.net]
- >>544
>ファイルが開けませんでした。 この時どんなエラーがでましたか?
- 554 名前:544 [2022/03/27(日) 18:47:55.50 ID:nYvTQ02C.net]
- >>545
RuntimeError: 'C:\Users\name\Desktop\�A���G�N�`���b�g�Ή�.JPG' を開いて読み込むことができません。 Invalid argument これと詳細な情報のところに Traceback (most recent call last): File "C:\Program Files\GIMP 2\lib\gimp\2.0\python/gimpfu.py", line 740, in response dialog.res = run_script(params) File "C:\Program Files\GIMP 2\lib\gimp\2.0\python/gimpfu.py", line 361, in run_script return apply(function, params) File "C:\Users\name\AppData\Roaming\GIMP\2.10\plug-ins\add_aaaaaaaa.py", line 11, in aaaaaaa
- 555 名前:デフォルトの名無しさん mailto:sage [2022/03/27(日) 18:48:39.52 ID:px6SVueC.net]
- >>544
'C:/Users/name/Desktop\\\x83A\x83\x8a\x83G\x83N\x83`\x83\x83\x83b\x83g\x91\xce\x89\x9e.JPG'.decode("mbcs")
- 556 名前:デフォルトの名無しさん mailto:sage [2022/03/27(日) 19:01:26.37 ID:ayYjDlX4.net]
- >>544
バイナリでglobしてバイナリでopenしてみれば? cp932がutf8の文字列として解釈されてるのが原因だと思う glob(b'*.jpg')
- 557 名前:544 [2022/03/27(日) 19:04:53.96 ID:nYvTQ02C.net]
- >>547
ありがとうございます! 無事ファイルが開けてプラグインが完成しました!!
- 558 名前:544 [2022/03/27(日) 20:00:09.87 ID:nYvTQ02C.net]
- もう一つ質問で悪いのですが
これもGIMPです 数字を文字列にして文章とつなげているのですが その半角数字を全角数字にしようとしましたが エラーが出ます どうしたらいいのでしょうか? コードを書くと書き込めなかったので スクリーンショットを貼ります https://imgur.com/a/F2J1Ksw エラーはこちらです https://imgur.com/a/xv8Hcrt
- 559 名前:デフォルトの名無しさん [2022/03/27(日) 20:31:27.21 ID:p/i0WnQH.net]
- >>550
https://ideone.com/ 再現ができないのでここにコードを書いて、そのリンクを貼ってください コードを書いて、Runボタンを押すとリンクが生成されます こんな感じで https://ideone.com/UGO5O1
- 560 名前:デフォルトの名無しさん mailto:sage [2022/03/27(日) 20:34:15.47 ID:px6SVueC.net]
- >>550
gimp2にバンドルされてるpythonは2.7なのでそのコードは使えないね
- 561 名前:デフォルトの名無しさん [2022/03/27(日) 20:35:54.32 ID:p/i0WnQH.net]
- Python2か
- 562 名前:544 [2022/03/27(日) 21:00:21.01 ID:nYvTQ02C.net]
- >>551
こうですか? https://ideone.com/cKytn2 >>552 python2の場合はどうすればいいですか?
- 563 名前:デフォルトの名無しさん mailto:sage [2022/03/27(日) 22:12:37.46 ID:GW1PkVkn.net]
- python2ってなんだよと思ったら、gimpって開発の勢いがないソフトだったんだな
2007年10月24日 - GIMP 2.4.0 2008年10月1日 - GIMP 2.6.0 2012年5月3日 - GIMP 2.8.0 2018年4月27日 - GIMP 2.10.0 今は2.10.30 Python 3.0は2008年12月3日
- 564 名前:デフォルトの名無しさん [2022/03/27(日) 22:21:41.23 ID:p/i0WnQH.net]
- >>554
https://ideone.com/xemuRV これでどうですか
- 565 名前:544 [2022/03/27(日) 22:34:09.27 ID:nYvTQ02C.net]
- たびたびすいません、GIMPのモノです。
glob.globが治っていたのが勘違いで 今度はアドレスに日本語が入ってると何も検索してくれなくなりました どうしたらいいですか? >>> glob.glob(b"C:\\Users\\name\\Desktop\\新しいフォルダー\\*.jpg") [] >>> glob.glob("C:\\Users\\name\\Desktop\\新しい\\*.jpg".decode("mbcs")) [] >>556 ありがとうございます! 無事小文字から大文字になりました
- 566 名前:デフォルトの名無しさん mailto:sage [2022/03/28(月) 08:06:48.20 ID:bggr0gZp.net]
- 書き間違いだろ
「新しいフォルダー」と「新しい」のどちらかが、存在しないのでは?
- 567 名前:デフォルトの名無しさん [2022/03/28(月) 11:24:31.81 ID:xKLASzt7.net]
- 久しぶりにPython2触ってたら痒くなってきた
- 568 名前:デフォルトの名無しさん [2022/03/28(月) 17:43:20.16 ID:FxPljt62.net]
- >>558
すいません地中で名前を変えたので 紛らわしくなりました 年のためもう一度試してみたのですが やはりフォルダー内を検索してくれませんでした
- 569 名前:デフォルトの名無しさん mailto:sage [2022/03/28(月) 17:54:40.03 ID:rI7b9so+.net]
- 解決案じゃなくて恐縮だけど
DOSの頃からAPI上のパス区切りはスラッシュで通るのに 入門書やサイトにバックスラッシュで記載あるのなんとかならんかな
- 570 名前:デフォルトの名無しさん mailto:sage [2022/03/28(月) 18:42:28.40 ID:zYEeILU0.net]
- ソースコードをutf8で書いたらいけない、ソースがutf8でなくshiftjisになってる、のどっちかじゃないか
- 571 名前:544 [2022/03/28(月) 18:59:10.76 ID:FxPljt62.net]
- 自己解決です
folder_path=folder_path.decode("utf-8") にしてみたら日本語でも行けました! お騒がせしてすいませんでした。 >>561 GIMPのコンソールだとglob.glob()の中はバックスラッシュじゃないと反応しなかったです
- 572 名前:デフォルトの名無しさん mailto:sage [2022/03/28(月) 19:04:00.69 ID:rI7b9so+.net]
- >>563
そうなんだ わざわざ試してもらってありがとう Python2のglob実装みてみる
- 573 名前:デフォルトの名無しさん [2022/03/28(月) 19:27:15.27 ID:FxPljt62.net]
- >>564のおかげで
バックスラッシュに気づけたので 解決出来ました ありがとうございます >>562 気づかずすいません ありがとうございます! そういう事みたいでした
- 574 名前:デフォルトの名無しさん mailto:sage [2022/03/28(月) 19:41:51.56 ID:awWxWPo2.net]
- u"C:\\Users\\name\\Desktop\\新しいフォルダー\\*.jpg"
のように最初からユニコード文字列にするのが正攻法かな でもgimpのpythonコンソールに直に書く時は u"C:\\Users\\name\\Desktop\\\u65b0\u3057\u3044\u30d5\u30a9\u30eb\u30c0\u30fc\\*.jpg" のようにunicodeエスケープしないといけないのが難点 俺環のgimp2.10.30はスラッシュでも問題ないな
- 575 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 03:06:27.47 ID:NFxs7VO2.net]
- 【悲報】俺が2時間かけて作ったプログラムがこれ [125096601]
https://greta.5ch.net/test/read.cgi/poverty/1649069479/
- 576 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 17:14:08.59 ID:EwNP7gad.net]
- uwscのBETWEENSTRに該当する
指定文字列から、AとBの検索語の間で文字列をカットする関数はありますか?
- 577 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 17:57:12.47 ID:qZGMajZg.net]
- >>568
https://docs.python.org/ja/3/library/re.html#regular-expression-syntax 正規表現の (?<=...) と (?=…) をつかって re.search() あたり?
|

|