20/08/10 19:47:59.02 x8FHf1wG.net
txtlとして保存するだけだけどキャッシュ機能作った
525:デフォルトの名無しさん
20/08/10 20:04:01.05 .net
>>506
ちなみにスクレイピングするときの無能有能の線引きみたいなものは?
もちろんAPIあるとことかスクレイピング禁止のとこでやるのは問題外として
526:デフォルトの名無しさん
20/08/10 20:06:48 .net
最近?だと図書館だかでスクレイピングしてた人が開示されてたけど
あれ結局どうなったんだろう
当時はめちゃくちゃ失笑されてたけど
もちろん図書館側が
527:デフォルトの名無しさん
20/08/10 20:09:48 sEIvZmCR.net
スクレイピングの解説してる記事読むと、アクセスの間隔は1秒位は開けましょうとか言ってるけど、
どれくらいの頻度でアクセスしていいかなんてそのサイト次第だから。
自分はバン食らった後で利用規約読んで真っ青になっちまったよ。
528:デフォルトの名無しさん
20/08/10 20:10:56 UtK+DCkZ.net
ゲヘラヘラ(・∀・)
529:デフォルトの名無しさん
20/08/10 20:17:10 .net
まぁノーログVPNでもかましとけば表沙汰になってない程度のことってのがなんとも感慨深いですな
530:デフォルトの名無しさん
20/08/10 20:17:51.91 x8FHf1wG.net
VP(ry
531:◆QZaw55cn4c
20/08/10 20:28:02 JYoLJZbs.net
>>510
岡崎市立中央図書館事件ですか
昨今のコ�
532:鴻i騒動でつくづくと思うのですが、技術的な事実と意思決定を行うものとの間隙が広すぎるのが、いろんな点で問題を複雑にしてしまっているのが最近の事例ですね 私は図書館側も責めることができません、だって図書館側の誰一人として、この件の技術的事実を当時も理解できなかったろうし、将来の時点においての理解可能性も期待できませんから
533:デフォルトの名無しさん
20/08/10 20:28:23 e/hT02ld.net
例の図書館の件、実際に業務に支障をきたすようなレベルだったんだろうか。
それなら図書館の言い分にも理があるかもしれない・・・
とか思って調べたら、「1秒に1アクセス程度に調整」だったのか・・・
534:◆QZaw55cn4c
20/08/10 20:32:31 JYoLJZbs.net
>>516
業務に支障はあったらしいですよ、プログラム側がバグっていたから‥‥
535:デフォルトの名無しさん
20/08/10 20:34:01.63 epTxOZiR.net
>>509
まあ「加減」ってやつを常識の範囲でコントロールするかどうかだな。アホは加減を知らん。
536:デフォルトの名無しさん
20/08/10 20:36:21.34 epTxOZiR.net
正確には加減を加える方法を知らんから恐ろしいコードをそのまま実行してしまう。
537:デフォルトの名無しさん
20/08/10 20:38:59.23 e/hT02ld.net
こっちが常識的に振る舞っているつもりでも、
相手が変な人かもしれないというリスクは常に存在するわけだ。
538:デフォルトの名無しさん
20/08/10 20:41:52.13 oc0Vxq0a.net
一般的には程度の低いバカの集団を相手にしてると思って間違いない
わたくしに比べれば他人の半分はアホだ
そういうのが相手だ
そういうノータリンに技術的な話は全く通じない
お涙頂戴の情緒的なお話しか通じない
539:
20/08/10 20:42:48.60 JYoLJZbs.net
>>518
真のアホなのはスクレイピング側ではなくて、三菱電機側なのでは?
540:デフォルトの名無しさん
20/08/10 20:43:31.92 .net
>>502は
・10ページ程度
・1ページずつ
・sleep挟む
慎重かつコントロールしようとしてるけど
それに対して「加減を知らん」ってのが今一わからんな
ようするに
>Dos攻撃とみなされて裁判沙汰
って言いたいだけでそれこそ加減を忘れて、説教したかっただけでは
541:デフォルトの名無しさん
20/08/10 20:49:20.79 HcOBHIWp.net
robot.textも詠んでない奴は無能だからスクレイピングすんな逮捕されるぞ
542:デフォルトの名無しさん
20/08/10 20:54:20.28 .net
404 Not Found
543:
20/08/10 20:55:49.15 JYoLJZbs.net
>>524
その robot.txt は「結果的に国立国会図書館のクローラも受け入れを拒否しており違法状態となっていた」そうですよね…
544:デフォルトの名無しさん
20/08/10 22:10:13.00 rTlZ13Bm.net
パスの指定方法を教えて下さい
txtファイル一覧を取得したいです
pathlib.Path("*").glob("*.txt")
これだと取得出来ていないようです
フォルダ部分のアスタリスクが良くないようです
fold1
├fold1-1.txt
└fold1-2.txt
fold2
├fold2-1.txt
└fold2-2.txt
545:デフォルトの名無しさん
20/08/10 22:28:15 rTlZ13Bm.net
↑解決したどす
546:デフォルトの名無しさん
20/08/10 22:33:29 b58AXMKw.net
君さぁ、一連のループ処理の質問してる人と同じ人?
pathlibの公式ドキュメント読んだ上でその質問なの?
URLリンク(docs.python.org)
547:デフォルトの名無しさん
20/08/10 22:51:23 .net
そんなもん読むよりぐぐったり聞いたほうが早い(読むなとは言ってない)
ソースコード読みたくなったときにドキュメントを全部読むと良いと思う
全部読んだ人は読むべき場所だけをわかってる
全部読んだことの無い人は読む必要のないところを知らない
548:デフォルトの名無しさん
20/08/10 22:55:48 .net
まぁ初心者でpathlib程度なら読むだけなら数時間もかからないだろうが
よくよく質問とかを見ればpathlibというよりもpythonの文法やら表記法で苦�
549:墲オてるって感じじゃないか
550:デフォルトの名無しさん
20/08/10 23:13:59.08 PbB9rIkO.net
Pythonは公式ドキュメントがクソだからね
初心者には厳しいよ
逆引き的なサイトを見るほうが賢い
551:デフォルトの名無しさん
20/08/11 05:28:50.84 D2zXE6xI.net
ステップ関数とシグモイド関数とLeRU関数を一つのグラフにするやり方がわからないです
fig.savefig()
で保存してpreviewをしても真っ白でした
552:デフォルトの名無しさん
20/08/11 06:09:26 x3iAuc4F.net
()
はすべて関数でしょうか?
553:デフォルトの名無しさん
20/08/11 07:10:35 Yoj/uuKw.net
kotee = (1 + 2) * 3
554:デフォルトの名無しさん
20/08/11 09:31:56.57 DyHWpKfR.net
>>535
固定?3^3=27?
Pythonはconst定数ないんだっけ?
555:デフォルトの名無しさん
20/08/11 09:40:20 lpYV++WD.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
556:デフォルトの名無しさん
20/08/11 09:48:14 B3vzQThI.net
>> 532
これなぁ
チュートリアルはいい出来だと思うが、リファレンスとしては本当にひどい
557:デフォルトの名無しさん
20/08/11 09:57:17 .net
ファイルの書き込みがダブルブッキングになりそうなときっていい感じに勝手にpython側で処理してくれるの?
558:デフォルトの名無しさん
20/08/11 10:01:47 B3vzQThI.net
>>539
やってみたら分かるけど、後にオープンしたほうが優先される
559:デフォルトの名無しさん
20/08/11 10:10:39 .net
>>540
そもそもテストの仕方がわからないけどこれでええんやろか
with open('hoge.txt', mode='w') as f:
f.write('a')
with open('hoge.txt', mode='w') as f:
f.write('b')
with open('hoge.txt') as f:
print(f.read())
たしかにbだけしか更新されてなかった・・
つまりは同じファイルをアッチやコッチで更新してたときに
with open閉じるまでに処理が重なって同時更新した場合は、
後が優先され前のデータは書き込みできていないってことかー・・
560:デフォルトの名無しさん
20/08/11 10:34:21.08 .net
と、おもったら上書きモード"w"になってただけだった
"a"だと普通に追記になったわ
上書き書き込み、というより、追記
がやりたいことだった >>539
追記のときもwith openがほぼ同時に処理されるなんてことはあるのだろうか
561:デフォルトの名無しさん
20/08/11 10:40:31.12 x3iAuc4F.net
モジュールとクラスでは、モジュールのほうが大きいんですよね?
562:デフォルトの名無しさん
20/08/11 10:45:12.20 B3vzQThI.net
>>542
バッファリングがあるからそんなに単純じゃないよ
同時に処理されるかどうかは確率的にゼロでなければ長期間運用してたら起こる可能性はあるので、その可能性があるならバッティングの処理が必要
一般的な方法としては空のファイルを作ってそのファイルが存在するかどうかで判断する
他の方法としてはsyslogやデータベースを使って、その処理は既存の仕組みで対応する
563:デフォルトの名無しさん
20/08/11 10:53:49.16 .net
>>544
sleepしてって考えてたけどsleep終わったあとに同時になったら・・とか思ってたが
>空のファイルを作ってそのファイルが存在するか
(これも存在確認後に、ってのがちょっと気になるが)
>syslogやデータベース
なるほど、あまり気にせず既存のを使えるのはいいな
とりあえずは余裕をもって確実に順次実行できれば一般用途では大丈夫ってことかな
あんがと
564:デフォルトの名無しさん
20/08/11 10:56:58.52 .net
ライブラリ ← パッケージが詰まってる
└パッケージ ← モジュールが詰まってる
└モジュール ← クラスや関数が詰まってる モジュール名.py
565:デフォルトの名無しさん
20/08/11 11:03:18.24 x3iAuc4F.net
はい
566:デフォルトの名無しさん
20/08/11 11:20:56 Kv91d30/.net
>>541
withを使えばその動作は予定通りなのでは?
普通に
567:openしてcloseするまえに処理の競合が起きれば、また違った動作になる
568:デフォルトの名無しさん
20/08/11 11:28:43.21 1kHdySm/.net
競合しないように書くの良いですね
569:デフォルトの名無しさん
20/08/11 13:08:00.16 IdGWSTlI.net
>>515
安全靴で丸坊主で歩いてるだけで逮捕だもんな
狂ってるわ
570:デフォルトの名無しさん
20/08/11 13:12:55.63 IdGWSTlI.net
>>544-545
セマフォの役割にはmkdir()が良いってどっかで聴いた
571:デフォルトの名無しさん
20/08/11 13:24:11.52 l01whKN5.net
perlの時代から有る手法で、ご丁寧なことに、被らないユニークな名前を生成してくれるモジュールまで存在していた
572:デフォルトの名無しさん
20/08/11 13:27:04.77 .net
>>548
そう
ただ、デバッグのやり方がわからなかった
例えば
with open('hoge.txt', mode='w') as f:
_f.write('a or b')
のa.py、b.py2つ用意して
a.pyとb.pyを同時に何万回も起動実行したりとかすればいいのかなと
>>511
なるほど
573:デフォルトの名無しさん
20/08/11 13:28:12.84 .net
>>553訂正 mode='w' → mode='a'
574:デフォルトの名無しさん
20/08/11 13:42:17.84 IdGWSTlI.net
555
575:デフォルトの名無しさん
20/08/11 14:43:16.85 jY8oIKoT.net
>>536
Python で定数を定義する
URLリンク(maku77.github.io)
Python には、C/C++ の const のような、定数を定義するためのキーワードは用意されていません。
576:デフォルトの名無しさん
20/08/11 14:57:39.72 nKBbqh2w.net
>>536
もしかして:kotae
577:デフォルトの名無しさん
20/08/11 15:34:48.63 D2zXE6xI.net
URLリンク(i.imgur.com)
ステップ関数をグラフにしようとしてこうやったけどならないんだけど間違ってる??
保存先の13.svgをpreviewしても真っ白になる
578:デフォルトの名無しさん
20/08/11 16:03:56.36 IdGWSTlI.net
>>558
URLリンク(dotup.org)
579:デフォルトの名無しさん
20/08/11 16:22:25.07 D2zXE6xI.net
>>559
うおおおおお!
まじで助かりました!
580:デフォルトの名無しさん
20/08/11 16:29:12.57 cFpL7en6.net
>>544
横だけど参考になりました
581:デフォルトの名無しさん
20/08/11 16:41:25.70 93tMQ9Bj.net
>>559
ステップ関数ってy=0とy=1が同じx座標になる関数じゃないの?
ズレてない?
582:デフォルトの名無しさん
20/08/11 16:43:36.93 DJf2UAfN.net
これくらいのステップの方が上りやすいな
583:デフォルトの名無しさん
20/08/11 17:36:53.27 IdGWSTlI.net
>>562
x の刻みを増やせば解決する
584:デフォルトの名無しさん
20/08/11 18:45:02.45 IUnIyxWQ.net
今まで一つのファイルにつらつらとコードを書き連ねてたから、分割しようとしたらま~苦労した
ライブラリとかモジュールとかただコピペして使ってただけだから、from~importとimportの違いもよくわかってなかった
独学で必要な情報だけつまみ食いしてると基本的なことが抜け落ちてて補完が大変だ…
585:デフォルトの名無しさん
20/08/11 21:03:59.46 7OoR6BUn.net
フレームワーク使って簡単なウェブアプリでも作ったらいい
構成からテスト、デプロイ等々、一通り網羅できるでしょ
586:デフォルトの名無しさん
20/08/11 23:41:09.64 D+9Pqaiv.net
URLリンク(imgur.com)
URLリンク(harigami.jp)
Pythonとmysql-connector-pythonについてです
MySQLで画像のようなテーブルを作成し、売上が100以上200以下の社員数を営業所ごとにカウントしたいです
sql_1は期待する結果を得られていますが
sql_2やsql_3のようにプレースホルダーを使うと何も取得できません
変数でテーブル名や数値などを動的に使いたいです
プレースホルダーを使ってsql_1を実現する方法を教えて下さい
587:デフォルトの名無しさん
20/08/12 01:27:49.12 t6UQqoiG.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
588:デフォルトの名無しさん
20/08/12 03:11:27 UVmFgkue.net
Ruby on Rails なら、
売上.where( 売上: 100..200 ).joins( 社員 ).group( 社員.営業所 ).count
Rails みたいなフレームワークを使わず、自分で文字列で、SQL 文を組み立てると、
SQL injection され放題になるけどw
589:デフォルトの名無しさん
20/08/12 08:22:16.74 .net
【構成】
hoge_sample
├main.py
└packages
├__init__.py
├sample01.py
└sample02.py
【main.py】
from packages import *
a = smpl01(1,2)
print(type(a))
print(a)
#print( dummy(1,2) )
【__init__.py】
from .sample01 import *
__all__ = [ "smpl01", '''"dummy"''' ]
【sample01.py】
from .sample02 import smpl02
def smpl01(a,b): return smpl02(a+b)
def dummy(a,b): return b-a
【sample02.py】
def smpl02(s): return str(s)
590:デフォルトの名無しさん
20/08/12 08:29:12.14 .net
疑問点 >>570
(1)
【main.py】でpackages内モジュールのクラスや関数を使う時
smpl01という名前を知っていることが前提
せめて「sample01をインポートしましたよ」みたいなマーキングは必要か?
それとも【packages】みたいなパッケージのディレクトリ名から、把握しているのが前提か
(2)
packagesのサードパーティ製モジュールのimportは相対パスで指定している
デバッグのために【sample01.py】を直接起動させると
smple02が使えない
591:デフォルトの名無しさん
20/08/12 08:39:48.51 .net
訂正 >>570
【__init__.py】
from .sample01 import *
__all__ = [ "smpl01" ] #["smpl01","dummy"]
592:デフォルトの名無しさん
20/08/12 08:47:45.76 +7u2t/Rq.net
まずtableがデータベースのテーブルではなくカラムになっていて紛らわしい
通報されるレベル
cursor.execute()の前にcursor(prepared=True)を実行しているか分からないが大丈夫か?
> cursor.execute(sql_2, (table, table, x_min, table, x_max))
は問題がないように見える
> cursor.execute(sql_2, (table, x_min, x_max))
は%sと引数の数があっていない
> cursor.execute(sql_3, {'table': table, 'x_min': x_min, 'x_max': x_max})
はこの文法が通用するのは比較的新しいPyMySQL(0.7.9以降?)だがバージョンは大丈夫か?
URLリンク(github.com)
593:デフォルトの名無しさん
20/08/12 09:09:26 +7u2t/Rq.net
>>571
(1)は言いたいこと良くが分からない
アスタリスクが全ての元凶のように見えるが・・・
この構成の作り方だと
packages.sample01 … module
packages.sample02 … module
packages.smpl01 … function
がmain.pyからは見える
(2)は相対インポートがパッケージ内でのみ機能する記法だから
直接実行すると相対インポートがエラーになる
回避方法は
python -m packages.sample01
として実行する方法だが、上記の構成で__init__.pyが定義されているため警告はでる
594:デフォルトの名無しさん
20/08/12 10:01:11.25 .net
>>574
>python -m packages.sample01
㌧ できた
なぜか警告も出なかった
(1)は最初
from packages.sample01 import smpl01
にしてたけど他にも使いたいモジュールが出てきたら
fromなんちゃらの行が【main.py】に延々追加されていくので
それなら__init__.pyの方に纏めておいた方が見やすいのか?と思った
595:デフォルトの名無しさん
20/08/12 10:13:01.58 r3C450gU.net
>>573
こんな書き方できるのか。知らんかった
mysqlclientで順番に値を放り込む方法しか使ったことないや
596:デフォルトの名無しさん
20/08/12 11:54:40 dVYQOL+d.net
URLリンク(harigami.jp)
すみません、まだやってます・・・そろそろ諦めようかな・・・
597:デフォルトの名無しさん
20/08/12 13:06:36 r3C450gU.net
>>577
カラム名を%sにするとだめみたいよ
置換フィールドで放り込んでやるとうまくいった
sql_4 = "SELECT 社員.営業所, COUNT(売上.売上) " \
"FROM 社員 LEFT JOIN 売上 " \
"ON 社員.社員ID = 売上.社員ID" \
"WHERE {table} BETWEEN %s AND %s " \
"GROUP BY 社員.営業所".format(table='売上.売上')
598:デフォルトの名無しさん
20/08/12 13:38:11.01 +7u2t/Rq.net
>>575
python -m packages.sample01
で警告が出るのはpythonのバージョンのせいかも知れない(python3.7では警告が出た)
この方法では
packages/__init__.py
がまず読み込まれ、その後
packages/sample01.py
が実行される
__init__.pyでsample01.pyを読み込んでいるので、sample01.pyは2回読み込まれていることに注意
__init__.pyにまとめることは普通に良くやるしpackages/__init__.pyの中でアスタリスクを使うことも良くやる
ただしmain.pyでアスタリスクを使うのは行儀が悪いように思う
fromナンチャラの行が増えるのが嫌いなら、メモリは食うけど
import packages
とした方が心の健康によさげ
599:デフォルトの名無しさん
20/08/12 13:54:59.57 +7u2t/Rq.net
>>577,578
>カラム名を%sにするとだめみたいよ
これが全て
600:デフォルトの名無しさん
20/08/12 14:15:16 .net
>>579
>2回読み込まれ
あーやっぱりそうだったのか なぜか2倍printされるので。。
>ただしmain.pyでアスタリスクを使うのは行儀が悪いよう
なるほど
601:デフォルトの名無しさん
20/08/12 14:19:38.23 dVYQOL+d.net
>>578
できました!やったーありがとうございます
602:デフォルトの名無しさん
20/08/12 14:21:32.92 q6njxWnQ.net
実用的でないPythonプログラミングを買いました。
VisualStudio2017とかでできますか?
皆さんオススメの環境を教えてください。
Pythonのバージョンは3.5らしいです。
(まだちゃんと読んでないけど)
603:デフォルトの名無しさん
20/08/12 15:03:29.71 +7u2t/Rq.net
Windowsなら
Python: Anaconda
エディタ: Visual Studio Code (VisualStudioではない)
604:デフォルトの名無しさん
20/08/12 15:21:07.28 JA3gbSGM.net
>>583
AnacondaPrompt
エディタはNotePad++
605:デフォルトの名無しさん
20/08/12 15:24:26 q6njxWnQ.net
>>584
>>585
有り難みが強い。
参考にさせていただきます。
606:デフォルトの名無しさん
20/08/13 10:56:33.23 0rwjVY3B.net
イテレータとリストの違いですが、イテレータは処理途中の状態を記録できるという点が違うのでしょうか?
607:デフォルトの名無しさん
20/08/13 11:27:43.34 WWRPvGcb.net
違う
君が言う後者の機能は generator
リスト は全部メモリに確保されたもの
イテレータ はメモリを占有せずに順番に値を取得
generator は処理途中の状態を記録できる
イテレータ�
608:フ実装に generator が使われているかも知れないが別の概念
609:デフォルトの名無しさん
20/08/13 11:27:51.35 RJ8S/0mc.net
作り置きと、注文の都度作るかの違い
作り置きは、置き場のスペースが必要
610:デフォルトの名無しさん
20/08/13 11:43:13.98 CM5c4LB7.net
リストとイテレータの違いがよくわからないのですが、かんたんナ... - Yahoo!知恵袋
URLリンク(detail.chiebukuro.yahoo.co.jp)
これでは分らなかったのか
611:デフォルトの名無しさん
20/08/13 12:28:04 0rwjVY3B.net
なるほど、なんとなくわかったです
612:デフォルトの名無しさん
20/08/13 12:48:37 BKihMO2y.net
foo = [1,2,3]
foo_iter = iter(foo)
next(foo_iter) #=> 1
next(foo_iter) #=> 2
next(foo_iter) #=> 3
next(foo_iter) #=> StopIteration
イテレータはnext()が呼ばれたら次の要素を1つ返すオブジェクト
内部でどこまで返したか覚えておく必要があるので状態を記録してるかというと記録してる
for x in foo: って書けば
iter(foo)して、next()を呼んで、得られた値をxに代入して、loop内の処理へ渡してる
ジェネレータは一般的には呼ばれたら1つ1つ値を生成して返す関数でイテレータの一種
ジェネレータではないイテレータは1つ1つ値を生成するんじゃなく
すでに用意されたリストなどから順に値を1つずつ返すもの
なので作り置きから注文の都度1つずつ返すのもイテレータ
613:デフォルトの名無しさん
20/08/13 13:00:42.76 0rwjVY3B.net
何故pathで取得したパスは、iterdirなどを使ってジェネレータにする必要があるんでしょうか?
ササッとリストでも取得してくれればいいんじゃないですか?
フォルダのファイル一覧を取得する場合、
パス→ジェネレータ生成→リスト化という手順を踏まないといけないみたいです
パス→リスト
でいいような、、
614:デフォルトの名無しさん
20/08/13 13:05:38.39 KaPqduB6.net
python2 へようこそ
615:デフォルトの名無しさん
20/08/13 13:10:29.18 xFixv4R5.net
一言で言うと「yieldがあるのがgenerator」
616:デフォルトの名無しさん
20/08/13 13:13:43.47 xFixv4R5.net
>>593
項目が超巨大になったときにリストの実態返されたら悲しいことになる
ジェネレータなら、あれ?なんかでかいぞ、止めよう、ができる
617:デフォルトの名無しさん
20/08/13 13:39:30.96 0rwjVY3B.net
>>596
な、なるほど
そこまで巨大なファイルを扱ったことはなかったので、必要性が分からんでした
618:デフォルトの名無しさん
20/08/13 13:56:32.50 CM5c4LB7.net
やっぱり強制的に教え込むべきだ
業界が先祖返りしてる
計算機プログラムの構造と解釈 第二版
URLリンク(sicp.iijlab.net)
619:デフォルトの名無しさん
20/08/13 14:04:29 jm0McRWL.net
>>592
> ジェネレータは一般的には呼ばれたら1つ1つ値を生成して返す関数でイテレータの一種
逆でしょ
「イテレータは、コンテナに含まれる値ひとつひとつに対して走るジェネレータの一種である。」
ハードウェア乱数生成装置から読み取った値を返すジェネレータとか内部で値を保持しないジェネレータとかもある
>>588とかも勘違いしてる
620:デフォルトの名無しさん
20/08/13 14:28:08 WYCQl6Jw.net
>>598
先祖還りって言うか
もう3周目とか4周目だろう
621:デフォルトの名無しさん
20/08/13 14:31:15 BKihMO2y.net
>>599
逆じゃないよ
>「イテレータは、コンテナに含まれる値ひとつひとつに対して走るジェネレータの一種である。」
こういう味方があっても別いいとは思うけど一般的ではない
>ハードウェア乱数生成装置から読み取った値を返すジェネレータとか内部で値を保持しないジェネレータとかもある
yield 乱数生成()で値を返すジェネレータがあったとして
何回yieldしたかとかloop条件を満たしてるかどうかとか
なんらかの状態を内部に保持することになるよね?
622:デフォルトの名無しさん
20/08/13 14:57:12.58 0rwjVY3B.net
ループの返り値を内包表記を使用して変数に挿れるのと、普通にループで記載する場合では何が違うんでしょうか?後者だとグローバル変数が必要になると思いますけど。
623:デフォルトの名無しさん
20/08/13 15:04:40.77 cLv1fX6M.net
>>602
URLリンク(qiita.com)
624:デフォルトの名無しさん
20/08/13 15:11:06.77 RDWqdqfD.net
>>601
> こういう味方があっても別いいとは思うけど一般的ではない
いや、なんの根拠もないお前の定義を一般的と主張されても困るよw
イテレータは必ずジェネレータだけどイテレータでないジェネレータはあるだろ(その例が乱数発生器)
> yield 乱数生成()で値を返すジェネレータがあったとして
> 何回yieldしたかとかloop条件を満たしてるかどうかとか
> なんらかの状態を内部に保持することになるよね?
そりゃ、そういうジェネレータならそうだろう…
内部情報を保持しない例に保持する奴持ってきて何を言いたいんだ?
625:デフォルトの名無しさん
20/08/13 15:27:20.97 TgMttUh/.net
>イテレータは必ずジェネレータだけど
どこからこんな解釈が?
pythonのイテレータはイテレータプロトコルをサポートするオブジェクトのことだし、
ジェネレータは呼ばれたらイテレータを返す関数のことだろ。
626:デフォルトの名無しさん
20/08/13 15:41:35.50 BKihMO2y.net
>>604
日本語のWikipediaの間違った記載を鵜呑みにしてるっぽいね
URLリンク(ja.wikipedia.org)ジェネレータ_(プログラミング)
英語版も見るといいよ
URLリンク(en.wikipedia.org)(computer_programming)
疑似乱数生成器(Psuedo Random Number Generator)の名前にジェネレータが含まれてるからといって
それらがプログラミング言語でいうところのジェネレータを使って実装されてるわけじゃないから
627:デフォルトの名無しさん
20/08/13 15:43:11.84 BKihMO2y.net
>>606
>それらがプログラミング言語でいうところのジェネレータを使って実装されてるわけじゃないから
それらが”すべて”プログラミング言語でいうところのジェネレータを使って実装されてるわけじゃないね
ジェネレータのものもあればそうでないものもあるということ
628:デフォルトの名無しさん
20/08/13 15:45:42.36 hDTlT7Ky.net
酷いのが居るな
知らないのなら黙ってれば良いのに
629:デフォルトの名無しさん
20/08/13 16:08:22.81 3TUGpUf8.net
>>605
>イテレータは必ずジェネレータだけど
逆ぅ!
>>> import collections, types
>>> issubclass(types.GeneratorType, collections.Iterator)
True
630:609
20/08/13 16:21:41.93 3TUGpUf8.net
訂正
>>609は>>604へのレスね。
631:デフォルトの名無しさん
20/08/13 16:34:47 .net
tkinterでmainloopする前に無限ループ処理をしたいのですが
無限ループ処理Aをするとmainloop()できない
mainloop()を先に、無限ループ処理Aを後にすると、無限ループ処理Aできない
という板挟みになりました
どうしたら良いのでしょうか
import tkinter as tk
import time
while True:
_print("処理")
_time.sleep(1)
root = tk.TK()
root.mainloop()
632:デフォルトの名無しさん
20/08/13 16:52:12 wdeLOLBT.net
クラスの使い道がわからん
数値や文字を関数に放り込んで値を出して表示する
これだけでやりたいことが全部できてやることがなくなった
633:デフォルトの名無しさん
20/08/13 17:18:52.97 ut3SsjSC.net
>>611
root = tk.Tk()
def mokomoko():
処理
root.after(1000, mokomoko)
root.after(1000, mokomoko)
root.mainloop()
634:
20/08/13 17:19:09.07 P/jo0Y4p.net
>>612
そのとおり
クラスなんかなくても何でも書ける
ただしクラスという抽象化手段は、単に書けるという以上のものを目指すときに使う
例えば再利用とか
635:デフォルトの名無しさん
20/08/13 17:22:35.60 CM5c4LB7.net
>>611
まずはかんたんなアナログ時計から作った方がいい
636:デフォルトの名無しさん
20/08/13 17:32:17.63 .net
>>613
できました ありがとうございます
ついでにボタンを追加してみたのですが
処理中はなぜかプッシュ感がありませんでした
ボタンクリックしても押し込まれるアニメーションが出てこない(処理が終わった瞬間、処理前に押したときのボタン処理がドバーッと実行される)のですがそういうものなんでしょうか
637:デフォルトの名無しさん
20/08/13 17:34:45.02 .net
>>615
とりあえずストップウォッチのコードを眺めてみることにします
638:デフォルトの名無しさん
20/08/13 17:53:26.38 DN44Q+/a.net
何かしらPythonでなければならない理由があるならともかくGUIならC#で作った方が楽じゃないか?
639:デフォルトの名無しさん
20/08/13 17:56:22.43 1iT07aDZ.net
>>618
ココはPython の布教>>1
640:デフォルトの名無しさん
20/08/13 18:05:56.78 BJex6KXt.net
>>616
細かい所を拘るなら
PySimpleGUIとか別ライブラリを使うのも手
(tkinter自体は大昔からあるやつだから、モダンな物を作ろうとするとちょっと大変)
641:デフォルトの名無しさん
20/08/13 18:11:59.85 .net
URLリンク(ideone.com)
とりあえずストップウォッチを参考に書いてみましたが
やはりボタンのプッシュ感がありません
なぜでしょうか
明らかにroot.afterの行が原因で止まっているんだろうな、という感じです
642:デフォルトの名無しさん
20/08/13 18:12:22.88 .net
>>620
なるほど ぐぐってみます
643:デフォルトの名無しさん
20/08/13 18:14:57.99 0rwjVY3B.net
複数フォルダの先頭ファイルのみ取り出すにはどういうロジックにしたらいいんでしょうか?
フォルダのインデックス0を取り出したあと、各々のフォルダの中でファイルのインデックス0を取り出すという手順になるでしょうか
644:デフォルトの名無しさん
20/08/13 18:15:56.91 0rwjVY3B.net
あ、違いますね。
フォルダのインデックス0という点は間違いです。フォルダ構造です。
フォルダ1
┗ファイル1
┗ファイル2
フォルダ2
┗ファイル3
┗ファイル4
645:デフォルトの名無しさん
20/08/13 18:32:21 .net
自己解決したかどうかわかりませんが(意図した処理と同等かよくわからない)一応ボタンが常にプッシュしてくれるようになりました >>621
URLリンク(ideone.com)
646:デフォルトの名無しさん
20/08/13 19:42:17.54 2TasqE+0.net
>>623-624
その子供ファイルたちの「一番目」って何で決めるの?
サイズ?日付?名前???
647:デフォルトの名無しさん
20/08/13 20:42:25 0rwjVY3B.net
sortedを使用するので、名前です(´・ω・`)、、、
648:蟻人間
20/08/13 20:46:52.26 4HMLW5OS.net
フォルダの一覧を作成。
各フォルダについて最初のファイルを取得して、ファイルパスをリストに追加。
649:デフォルトの名無しさん
20/08/13 20:58:21 vQKb1geh.net
>>587
一般論であれば、まずPythonにおける「リスト」とは
他言語における「配列」を指す
次に、配列とは単なるデータ構造を指し、
その配列の各要素をあれこれ処理するアルゴリズムは「手続き」として定義される
データ構造と手続きが完全に分離されている、これがFORTRAN/COBOLに始まり
C/Pascal/Modulaへと続く1980年代前半までの古典的な「手続き型言語」の流れ
こうした手続き型の流れは、大規模開発における保守性/再利用性の低さから批判を受け、
対処策として注目された概念の一つが「抽象データ」であり、
これはデータ構造の内部詳細を隠蔽し外部に公開された手続きで処理対象をモデル化する
たとえばスタックという抽象データは、内部のデータ構造が配列であっても
リンクドリストであっても構わず、外部に公開されたEmpty/Push/Pop/IsEmptyという
手続きの集合(インターフェイス)だけで定義される
この抽象データという概念を発展させて、反復(ループ)処理すらも抽象化させるという提案が
イテレータ(iterator, 反復子)であり、それが最初に実装されたのがCluと呼ばれる実験的言語になる
まとめると、リスト(=配列)とはデータ構造の一種であり、イテレータとはリストを含む
複合データ構造に関する反復処理に限定して抽象データとしてモデル化した概念である
650:デフォルトの名無しさん
20/08/13 21:02:29.42 0rwjVY3B.net
>>628
ロジックは最初に日本語化したほうがいいですか?
651:蟻人間 ◆T6xkBnTXz7B0
20/08/13 21:07:21 4HMLW5OS.net
>>630
英語の方が分かりやすいなら英語で。伝統的な日本人なら日本語で。
652:デフォルトの名無しさん
20/08/13 21:18:06.70 .net
PySimpleGUI調べてみました
圧倒的にコードが見やすくなりました
特徴は、レイアウトを最初にまとめてコーディングして
最後にWhile True:でイベントを監視するところでしょうか。
event, value = window.read()の直前後にprintを挟んでテストしてみましたが
一番最初にそのprintが出力され、次にイベントの処理が出力されました
つまりwindow.read()のところで待機?してるのだと思いますが
その仕組みが今一わからず悶々としています
653:デフォルトの名無しさん
20/08/13 21:25:29.32 vQKb1geh.net
>>631
リストに対応する英単語は list であり、
同様に、配列に対応する英単語は array(アレイ) または vector(ベクタ) である
何を言いたいのかな?
英語?日本語?言語は関係ないよ
654:デフォルトの名無しさん
20/08/13 22:05:38.43 SL8XbHj+.net
はじめてpysimpleguiを知ったんだけど、tkinterやqtのラッパーだなんて説明を見つけたけど本当?
公式の英語を読むと、ラッパーなんて記述は見つからないのだが。
655:デフォルトの名無しさん
20/08/13 23:41:28.50 ut3SsjSC.net
5秒で見つけたぞ
URLリンク(pysimplegui.readthedocs.io)
656:デフォルトの名無しさん
20/08/13 23:45:08.41 SL8XbHj+.net
あ、ホントだ。てことは、exe配布時に必要なバッケージはどうなるんだ?
全部?
657:デフォルトの名無しさん
20/08/14 00:07:27 SCMnTycc.net
例えば、メモ帳のパスなら、コマンドプロンプトで確認できる。
上に表示される方が、優先される
where notepad
C:\Windows\System32\notepad.exe
C:\Windows\notepad.exe
同様に、where php とやってみれば?
環境変数パスを知らないような人は、システム環境構築運用なんて、とてもできない
658:637
20/08/14 00:08:54 SCMnTycc.net
>637
誤爆です
659:デフォルトの名無しさん
20/08/14 01:42:40.43 H4kV4BPg.net
何の話かと思ったぜw
660:デフォルトの名無しさん
20/08/14 02:25:37.41 SCMnTycc.net
>>623
【.cmd】 バッチファイルスクリプト %13 【.bat】
スレリンク(tech板:972番)
上に、Ruby で書いておいた。
Rubyでは、フォルダ以下のファイル名を取得する際、自動的にソートされる
他には、隠しファイルをどう扱うのか?
661:デフォルトの名無しさん
20/08/14 02:44:30 PbBJ4pBD.net
再帰関数について質問させてください。
どういう順番で処理されているのかよくわからなかったので、
0から10までの数字を足す処理を再帰で書いて、途中のプロセスをprintで出力しようとしました。
URLリンク(techiedelight.com)
するとこのような結果が出たのですが、A_10からB_55が二回分printされているのはなぜなのでしょうか。
他のプログラム言語の経験は無く、pythonを始めたばかりです。
変な質問だったらすみません。
662:デフォルトの名無しさん
20/08/14 02:55:36.25 sxmwfi0L.net
>>641
total(10) #=> 1回目
print(total(10)) #=> 2回目
2回実行してるから
663:デフォルトの名無しさん
20/08/14 03:00:28 PbBJ4pBD.net
>>642
ありがとうございます。わかりました。
664:デフォルトの名無しさん
20/08/14 03:15:21.63 PbBJ4pBD.net
再帰の件、続けての質問ですみません。
URLリンク(techiedelight.com)
さっきと同じ計算なのですが、printの位置を追加しました。
これを見ると、「def の中で if より上の部分だけは最初に処理される」ように見えます。
そこで疑問なのですが、再帰というのはdefを使っている場合だけに可能な処理で、普通に書いた時は再帰処理することはできない、という理解は正しいですか?
665:デフォルトの名無しさん
20/08/14 05:29:46.15 IsZI9WNI.net
ラムダ式っていうのを使えばdef使わなくても再帰はできる
しかし本質的にはやってることは同じ
666:デフォルトの名無しさん
20/08/14 05:45:29.86 PbBJ4pBD.net
わかりました。ありがとうございます。
667:デフォルトの名無しさん
20/08/14 06:38:10.15 gdj6lSjH.net
pat = sorted([file.stem for file in foldername.glob("*.txt")])
return pat[0] if pat else None
これはフォルダにあるファイルの一覧を取得していますが、
if pat の部分は何を指定しているのでしょうか?
もしリストであったのなら とは�
668:H
669:デフォルトの名無しさん
20/08/14 07:06:27.95 XbgH4NM8.net
>>647
Pythonで「if 変数名」ときたら
「変数がからっぽ系じゃない場合は」という意味
この場合は
「リストになんかHitした結果がはいってるなら」=foldernameの中にtxtファイルがあれば
670:デフォルトの名無しさん
20/08/14 07:21:42 lmu28MG3.net
この手の暗黙的な書き方は、セキュアじゃないことに気を付けないといけないけどな。
ところで、この場合の角括弧はいらないというか邪魔。
pat = sorted(file.stem for file in foldername.glob("*.txt"))
他に引数がある場合は、丸括弧にする。
pat = sorted((file.stem for file in foldername.glob("*.txt")), reverse=True)
671:デフォルトの名無しさん
20/08/14 07:34:13 gdj6lSjH.net
>>648
trueということですね ありがとうございます
672:デフォルトの名無しさん
20/08/14 08:37:56 AaNqGTg5.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
673:デフォルトの名無しさん
20/08/14 11:06:59.37 gdj6lSjH.net
ファイルに連番を使いたいのですが、イテレータからインデックスを取り出す事はできませんか?
import os
import pathlib
target_folder =pathlib.Path(".")
for i in target_folder.iterdir():
os.rename(i,"hoge")
674:デフォルトの名無しさん
20/08/14 11:18:33.39 sgFs/qSh.net
enumerate
675:デフォルトの名無しさん
20/08/14 11:39:11.68 gdj6lSjH.net
あい
676:デフォルトの名無しさん
20/08/14 15:55:46.15 gdj6lSjH.net
import os
import pathlib
target_folder =pathlib.Path(".")
for i, name in enumerate(target_folder.iterdir()):
if name.is_dir():
print(name)
os.rename(name,"hoge"+[i])
フォルダを連番リネームするにはどうしたらいいのでしょうか?
リストにインデックスはつけられないみたいです。
このエラーです
can only concatenate str (not "list") to str
677:デフォルトの名無しさん
20/08/14 16:15:03.54 jPrekU1/.net
"hoge"+str(i)
"hoge{0}".format(i)
f"hoge{i}"
678:デフォルトの名無しさん
20/08/14 16:49:21.19 gdj6lSjH.net
str内でインデックス使っていいんですね
ありがとう
679:デフォルトの名無しさん
20/08/14 18:27:56 gdj6lSjH.net
lis = [1,2,3,4,5,6]
for i in lis:
rep = "{0}{1}{2}".format("(" , i , ")")
print(rep)
formatで括弧を付ける場合、これよりかんたんな書き方はあるですか?
680:デフォルトの名無しさん
20/08/14 18:29:52.88 IsZI9WNI.net
"({})".format(i)
681:デフォルトの名無しさん
20/08/14 18:39:59.80 jPrekU1/.net
rep = "{0}{1}{2}".format("(" , i , ")") の発想がすげーよ。
馬鹿にしているわけではないよ。
682:デフォルトの名無しさん
20/08/14 18:41:02.22 gdj6lSjH.net
駄目なんですか?
683:デフォルトの名無しさん
20/08/14 18:46:04.13 zY2s9ydf.net
rep = f'({i})'
684:デフォルトの名無しさん
20/08/14 18:46:25.97 gdj6lSjH.net
>>659
波括弧になにもない場合は数字は0ということですか?
685:デフォルトの名無しさん
20/08/14 18:53:25.52 sgFs/qSh.net
>>662
なんだかマンコみたいだね。
686:デフォルトの名無しさん
20/08/14 18:56:50.18 d5rr7Q8j.net
format って、% より優れてんの?
どっち使えばいいのかわからない。
687:デフォルトの名無しさん
20/08/14 19:04:47 sRXPDhxm.net
>>663
バージョン 3.1 で変更: str.format() を使い、位置引数指定を省略することができます。
'{} {}'.format(a, b) は '{0} {1}'.format(a, b) と同じになります。
URLリンク(docs.python.org)
個人的には嫌い、ちゃんと '{0} {1}'.format(a, b) って書けって思う。
688:デフォルトの名無しさん
20/08/14 19:10:30 gdj6lSjH.net
どうもです
リファレンスはむずすぎて読めなくて
689:デフォルトの名無しさん
20/08/14 19:11:16 sRXPDhxm.net
>>665
多くの場合、新構文に {} を加え、 % の代わりに : を使うことで、古い %-書式に類似した書式になります。
って書いてあるぐらいだから新規に書くなら{}の方が良さげみたいよ
URLリンク(docs.python.org)
690:デフォルトの名無しさん
20/08/14 19:46:02.83 CR1HsLIW.net
>>667 チュートリアルの方は読んだ?
691:デフォルトの名無しさん
692:
読んでませんよ yagniの法則ってやつがあるじゃないですか
693:デフォルトの名無しさん
20/08/14 20:23:56.31 JGhukcXO.net
>>670
プログラミングむいてないから死んだほうがいいよ
694:デフォルトの名無しさん
20/08/14 20:38:57.81 gdj6lSjH.net
あっそ
695:デフォルトの名無しさん
20/08/14 20:40:43.70 ZRaURx7c.net
>>670
yangiの法則自体は正しいが人に聞く時点ですでneeded itなんだからyangiとか言うのはアホすぎる
696:デフォルトの名無しさん
20/08/14 21:03:39.40 BnsOUaV6.net
>>670
今必要ないものを後に回すのは構わないが、今必要なものをそれと分からずに面倒だからと後回しにするのは愚か者のすること
697:デフォルトの名無しさん
20/08/14 21:49:33.08 gdj6lSjH.net
>>673
いえ、チュート全部やれと言われたことだと勘違いしてました
698:デフォルトの名無しさん
20/08/14 22:25:47 KcsXYi6u.net
>>670
何その法則?
699:デフォルトの名無しさん
20/08/14 22:47:13.16 SCMnTycc.net
>>658
Ruby では、"~" 内で、#{ 式 } を使うことによって、
式の結果を、文字列に変換して埋め込める
ary = [ 1, 2, 3 ]
ary.each { |num| puts "(#{ num })" }
出力
(1)
(2)
(3)
700:デフォルトの名無しさん
20/08/14 22:53:52 PbBJ4pBD.net
pandasっていうのは、大雑把にいうとexcelみたいな操作が出来るっていう理解で良いですか?
701:デフォルトの名無しさん
20/08/14 23:23:18 zjwuqJDu.net
YAGNIの原則は、機能追加の話だろ
(必要になるまで追加しない、無駄な機能は実装しない)
困るまで勉強しない、っていう意味では決してないぞ
702:デフォルトの名無しさん
20/08/14 23:25:23 W6UEY8/Z.net
応用力 "0" かよww
703:デフォルトの名無しさん
20/08/14 23:53:11.72 hpI++Bi7.net
何でPython スレにRuby馬鹿が居座ってるんだよ。
迷惑だから出て行け。
704:デフォルトの名無しさん
20/08/15 00:40:53 xyieNCYl.net
RubyってRails専用言語のことか
705:
20/08/15 00:54:00.92 3gqWFA1d.net
>>679
>困るまで勉強しない
なんだかすごくステキにみえました…
706:デフォルトの名無しさん
20/08/15 00:59:22.22 tbDdrA6F.net
もぅちょっとだけ安くなりませんか?
707:デフォルトの名無しさん
20/08/15 01:19:33 UniGXrGx.net
>>684 無料だろ?、何の話かな?
708:デフォルトの名無しさん
20/08/15 01:21:17 tbDdrA6F.net
GPU・・勉強してくれませんか
709:デフォルトの名無しさん
20/08/15 06:39:26 d62445LX.net
勉強しゃなくて学習って言おうぜ。
710:遊園地 ◆ExGQrDul2E
20/08/15 17:23:47 94hqmZX8.net
お盆か……。
711:デフォルトの名無しさん
20/08/15 17:35:35.93 tl7eyI/S.net
益だね
712:デフォルトの名無しさん
20/08/15 18:13:08 4GsEJ4Sf.net
>>686 こいつお岩さん見たい。 現代風で言えばリング
713:デフォルトの名無しさん
20/08/15 23:06:56.48 bBp+moLX.net
このスレでpysimpleguiを知ったのは収穫だった
以前tkinter使ったときうんざりしたので、以来pythonでのGUIアプリは敬遠していた
714:デフォルトの名無しさん
20/08/16 03:13:42 03PcCSpR.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
715:デフォルトの名無しさん
20/08/16 03:16:25 03PcCSpR.net
朝鮮人は強姦と窃盗しかしない犯罪者
716:デフォルトの名無しさん
20/08/16 11:20:55 7Iew54RL.net
tkinterのメッセージボックスだと最前面するのがちょっとめんどくさいので
メッセージボックスにWindows APIを使ってる
MessageBoxTimeoutWくらい自由度があるといいんだけどな
717:デフォルトの名無しさん
20/08/16 11:26:24 ng3yYkoc.net
自由度が高いモノって
718:面倒臭さも高いんじゃないの 自由度が高くて単純なモノってのは普通は存在しないんじゃない
719:デフォルトの名無しさん
20/08/16 11:46:55.01 7Iew54RL.net
>>695
デフォルトで使うと、tkinterと変わらない動作
自由度という点では、これに加えて、
アイコンの種類、ボタンの種類、デフォルトボタンの指定、
(ここまではtkinterもできる)
ウィンドウ制御(最前面など)、タイムアウトの有無、その時間などが指定可能
タイムアウトに関しては、ボタンを選択しなければ設定後に指定した値を返すもので、
ドキュメント化されていないAPIなのでいつまで使えるかわからないけど、
XP以降、10になっても同じ動作を確認済み
このタイムアウト、ものすごく便利なので、tkinterでも取り入れてくれないかな
720:デフォルトの名無しさん
20/08/16 11:51:49.49 j7S5p+S9.net
マルチプラットフォームを捨てれば可能
721:デフォルトの名無しさん
20/08/16 18:01:25.88 rKV4lCZM.net
pyqt5で作ったアプリをpy2appで書き出すときに関する質問です
-Aオプションでエイリアス指定すれば動作するのですが,-Aなしでビルドするとエラーになります
どこに問題があるのでしょうか…?
722:デフォルトの名無しさん
20/08/16 18:13:50 43uVw8aV.net
あたま
723:デフォルトの名無しさん
20/08/16 18:30:35 vY7TUO/d.net
スタンドアロンなアプリを作るのにPythonを選択したところかな
724:デフォルトの名無しさん
20/08/16 20:17:48.61 rKV4lCZM.net
頭悪くてすみません,ようやく解決しました
オプションでPILを指定しなきゃいけなかったみたいです
使ってないのになぜ…?
725:デフォルトの名無しさん
20/08/16 20:29:37 ukEeeY+y.net
内部で使ってんでしょ
726:デフォルトの名無しさん
20/08/17 10:08:48 JNS55LaW.net
pythonのexe化って難読化とか暗号化とかされるの?
727:デフォルトの名無しさん
20/08/17 11:39:44 p+skW/fD.net
>>703
Pythonで書かれたものはインタープリタで動かすスクリプトに過ぎないので
OS環境で動かす為にバイナリにコンパイルするんだよ
728:デフォルトの名無しさん
20/08/17 11:43:23.19 quFboGPj.net
exeに必要なものをzipでまとめてくっつけてるだけだぞ
729:デフォルトの名無しさん
20/08/17 12:00:32.92 p+skW/fD.net
Pythonインストールしてなくても動くのは何故?
730:デフォルトの名無しさん
20/08/17 12:05:36.00 frAy30YW.net
>>703 Python は一度コンパイルされて中間コードになる事を知らないみたいだね。
.pyc がキャッシュに出来てそれが実行される。
これをまとめてexe化してるだけだから、当然ある程度難読化はされてることになる。
自分でコンパイルしてみたら?
Pythonでコンパイルは可能なのか?やり方をまとめてみた
URLリンク(blog.codecamp.jp)
731:デフォルトの名無しさん
20/08/17 12:07:00.42 frAy30YW.net
>>706 Pythonごと実行環境が丸ごと入ってるから。 だからサイズも大きくなる。
732:デフォルトの名無しさん
20/08/17 12:15:11.54 p+skW/fD.net
>>708
ありがとう
733:デフォルトの名無しさん
20/08/17 22:25:43.15 Sqm5hAaO.net
>>703
されないよ。中間コードその他に変換することは難読化とは言わないし、実際pythonの場合は変数名やdocstringもそのまま残るから、ツールで簡単に元に戻せる
734:デフォルトの名無しさん
20/08/17 22:31:01.73 gJOOnP9g.net
pythonの難読化
URLリンク(github.com)
735:デフォルトの名無しさん
20/08/18 09:27:54.05 /rMTxrIU.net
数行だけでもexeが5MBだもんなぁ
736:デフォルトの名無しさん
20/08/18 10:28:13.09 ZtSNRLAD.net
PythonNN.dll 以下のサイズにはならんでしょ
737:デフォルトの名無しさん
20/08/18 11:41:01.45 CekSd1r9.net
Pyodido と言うWebAsembly 上でPythonが動く。
numpyとか色んなライブラリも入ってる。
PythonインタプリタをWebAssemblyへコンパイル、Webブラウザで稼働するPython環境「Pyodide」。Mozillaが開発中
2019年4月19日
URLリンク(www.publickey1.jp)
Mozillaは、WebブラウザでPythonインタプリタや数値計算ライブラリのNumPyなど、Pythonの標準的なデータサイエンス環境をほぼそのまま実行可能にする「Pyodide」(パイオダイドと発音されているようです)を開発中です。
Pyodide
Mozilla Hacksのブログに投稿された記事「Pyodide: Bringing the scientific Python stack to the browser」で、このPyodideの詳細と現状が報告されています。
Pyodideは、データサイエンス環境をWebブラウザ上で実現しようというMozillaのプロジェクト「Iodide(アイオダイド、と発音されているようです)の関連プロジェクト。
Pyodideの最大の特徴は、標準のPythonインタプリタのフル機能をWebブラウザ上で実現しようとしている点にあります。下記はブログから。
Pyodideはフル機能の標準Pythonインタプリタをブラウザ上で提供し、Web APIへのフルアクセスも実現する。
つまりWebブラウザ上でPython言語およびデータサイエンス関連のPythonライブラリ、例えばNumPy、Pandas、Scipy、Matplotlibなどをそのまま使ってプログラミングできて、さらにWebGLのような高速なグラフィック描画なども呼び出せるようにする、というわけです。
以下略
738:デフォルトの名無しさん
20/08/18 12:37:13.78 1N2TKAu+.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
739:デフォルトの名無しさん
20/08/18 12:38:36.50 KgEygz2n.net
実はお手軽にGUIツール作りたいってだけならHSPとかラクなんじゃないでしょうかね
740:デフォルトの名無しさん
20/08/18 12:45:11.57 h5vNCvfY.net
Tcl/Tk
741:デフォルトの名無しさん
20/08/18 13:22:12.48 nBWkiWUW.net
トックル・トックって、韓国語っぽいよね。
742:デフォルトの名無しさん
20/08/18 13:36:07.09 h5vNCvfY.net
土下座は鳩だけで充分です
743:デフォルトの名無しさん
20/08/18 13:51:03 2ZDers5G.net
Byte Dance
744:デフォルトの名無しさん
20/08/18 13:52:18 pYta9VEC.net
>>716
Visual Studioが良いと思う
HSPはスレに多い[Highly Sensitive Person]
745:デフォルトの名無しさん
20/08/18 22:33:29 tlGDswHk.net
globに下位フォルダの検索機能はあったでしょうか?
ルートフォルダを起点にして、下位フォルダのファイルを取りたいどす
746:デフォルトの名無しさん
20/08/18 22:38:32 7q74aHL6.net
パスに**を入れる
747:デフォルトの名無しさん
20/08/18 23:22:17 OA/+1SVm.net
初めてさわったのがpythonだからPHPやJavascriptで{}や;がやたら多くてびっくりした
他の言語もこんな無駄カッコや無駄記号だらけなん?
748:デフォルトの名無しさん
20/08/18 23:29:07 7q74aHL6.net
C言語を先祖に持つ言語は、みんなそんな感じだよ
749:デフォルトの名無しさん
20/08/19 00:09:21 LSZ+gOY+.net
>>724
一概に無駄でもないよ
改行とインデントを強制されなければ
script.min.js のように圧縮出来たりするんだから
750:デフォルトの名無しさん
20/08/19 00:23:15.86 Hd2Bulw5.net
plt.gcf().text(0,0,'value=',value)
でエラーが出る
テキスト文字と変数を同時に表示させるのってどうすればいいのでしょう?
751:デフォルトの名無しさん
20/08/19 00:47:45.59 LSZ+gOY+.net
>>727
コレかな?
URLリンク(stackoverflow.com)
or by using the text m
752:ethod of the figure instead of that of the axes. plt.gcf().text(0.02, 0.5, textstr, fontsize=14) In both cases the coordinates to place the text are in figure coordinates, where (0,0) is the bottom left and (1,1) is the top right of the figure.
753:デフォルトの名無しさん
20/08/19 00:55:11.95 LSZ+gOY+.net
URLリンク(note.nkmk.me)
数値と文字列の連結・結合: +演算子, +=演算子, str(), format()
異なる型の+演算はエラーとなる。
s1 = 'aaa'
s2 = 'bbb'
i = 100
f = 0.25
# s = s1 + i
# TypeError: must be str, not int
source: string_concat.py
数値(整数型intや浮動小数点型floatなど)と文字列を連結したい場合は、
数値をstr()で文字列型に変換してから+演算子(または+=演算子)で連結する。
s = s1 + '_' + str(i) + '_' + s2 + '_' + str(f)
print(s)
# aaa_100_bbb_0.25
754:デフォルトの名無しさん
20/08/19 00:59:57.44 LSZ+gOY+.net
textstr = 'value=' + str(value)
plt.gcf().text(0.0, 0.0, textstr, fontsize=14)
755:デフォルトの名無しさん
20/08/19 01:14:52.83 evela54s.net
なんだかんだPython が楽でいいわ
756:デフォルトの名無しさん
20/08/19 01:25:54.61 wpPNClEy.net
俺なら、
plt.gcf().text(0,0,f'value={value}')
とするわ
757:デフォルトの名無しさん
20/08/19 05:17:29.66 d0Iv/yZR.net
>>723
深さが色々なのですが、できるでしょうか
758:デフォルトの名無しさん
20/08/19 05:41:46.19 J4RcMtm3.net
>>733 横だが
できるはずだぞ
「glob 階層 検索」あたりでggr
759:デフォルトの名無しさん
20/08/19 05:42:33.66 J4RcMtm3.net
>>731
そうおもっていたじきもありました
バッチやVBAも、やってみればなかなか楽だったでよ
760:デフォルトの名無しさん
20/08/19 10:22:48.19 AdEpa29f.net
>>732
+1
761:デフォルトの名無しさん
20/08/19 14:18:08.43 d0Iv/yZR.net
URLリンク(i.imgur.com)
globとisdir関数でフォルダのみを取りたかったのですが、変なドットが含まれます
これは何でしょうか?上がディレクトリの構造です
import pathlib
import os
pat = pathlib.Path(".")
dirlist = pat.glob("**/")
for i in dirlist:
if os.path.isdir(i):
print(i)
これが結果です
.
renamedhgggg(0)
renamedhgggg(1)
762:デフォルトの名無しさん
20/08/19 14:18:48.82 d0Iv/yZR.net
すみません、10秒でかいけつしました
763:デフォルトの名無しさん
20/08/19 14:30:11.57 meyBYzW3.net
>>737
os使わなくてもpathlibでis_dir()使える
764:デフォルトの名無しさん
20/08/19 15:13:03 d0Iv/yZR.net
>>739
どうも
ごっちゃになっててよく分からんですねこれ
765:デフォルトの名無しさん
20/08/19 16:08:23.78 d0Iv/yZR.net
URLリンク(ideone.com)
これでなぜ4が返ってくるのでしょうか?
ローカル変数のlisをリターンできないと思うんですが
766:デフォルトの名無しさん
20/08/19 16:10:37.05 J4RcMtm3.net
>>740
( ̄д ̄) エー
767:デフォルトの名無しさん
20/08/19 16:12:41.38 J4RcMtm3.net
>>741
4行目でreturnしとるやん
でもって6-8行目でちゃんとprint()にハメてるやん
だからちゃんとprintされるでー
768:デフォルトの名無しさん
20/08/19 16:13:10.21 UJIDJS1m.net
0,1,2,3,4って入れてるじゃん?
769:デフォルトの名無しさん
20/08/19 16:15:58.64 9WUZg8Od.net
>>741
ローカル変数は参照できないだけでreturnはできるぞ
むしろそれ出来なかったらグローバル変数だらけになってカオスになるだろwwwwww
770:デフォルトの名無しさん
20/08/19 16:18:24.10 d0Iv/yZR.net
>>745
へぇ グローバルにしなくていいんすか(´・ω・`)、、、
771:デフォルトの名無しさん
20/08/19 16:59:21 QxrGZXqC.net
横軸距離、縦軸心拍のグラフ作りたいのですが
matplotlibで表示するとフルマラソンの横軸が
42.195ではなく4.2195E04となってしまい
772:ます 400m走読ませると4E02となります これを一般的な42.195kmあるいは400mと表示させるには何を設定すればいいのでしょうか? matplotlibのaxis触っても色や一だけで中身変える方法が分かりません
773:デフォルトの名無しさん
20/08/19 17:23:45.94 UUCJaV6t.net
>>735 そりゃ単に底が浅いだけだよ。 複雑な事をしようとすると何もできない。
774:デフォルトの名無しさん
20/08/19 17:53:52.27 d0Iv/yZR.net
なぜglobはリスとではなく、ジェネレータを返すのでしょうか?
775:デフォルトの名無しさん
20/08/19 18:03:10 d0Iv/yZR.net
folder = pathlib.Path("./folder")
gettxt = folder.glob("*.txt")
for i in gettxt:
print(i)
イテレータの1つめを取得するにはどうしたらいいんでしょうか
print(i[0])だと怒られます
776:デフォルトの名無しさん
20/08/19 18:20:24.54 J4RcMtm3.net
>>749-750
ggrks
「Python イテレータ ジェネレータ」
777:デフォルトの名無しさん
20/08/19 18:21:02.35 J4RcMtm3.net
>>748
一見複雑なことを
簡単なことの規則性に分解するのがプログラみんぐジャネーノ?
778:デフォルトの名無しさん
20/08/19 18:26:08 J4RcMtm3.net
>>747
matplotlibとエスパーして答えてやんよ
違ってたらシラネ(゚?゚)
ScalarFormatterのプロパティをuseMathText=Trueにしてないか ←一番濃厚
subplots()関数のsharexオプションにTrueを渡してないか
Axes.set_xscaleをちゃんとlinearにしているか←穴馬
779:デフォルトの名無しさん
20/08/19 19:40:31 d0Iv/yZR.net
>>751
わからないので
780:デフォルトの名無しさん
20/08/19 19:45:35 UIEWxeK0.net
イテレータくんの長期連載は進歩してる感じが全然しないな
781:デフォルトの名無しさん
20/08/19 19:47:03 WTzhpdxp.net
print(folder.glob("*.txt").next())
782:デフォルトの名無しさん
20/08/19 20:13:37 d0Iv/yZR.net
>>756
print(folder.glob("*.txt").next())
AttributeError: 'generator' object has no attribute 'next'
こうなりますです
783:デフォルトの名無しさん
20/08/19 20:31:48 J4RcMtm3.net
>>755
んだべな
>>754
バカの壁・・・
続きは↓でやれよ! (・∀・)カエレ!!!
初心者の質問 URLリンク(matsuri.5ch.net)
784:デフォルトの名無しさん
20/08/19 20:35:00 TTB/c6/P.net
結論だけ言うとジェネレータが返ってくるのでジェネレータはn番目の要素が具体的に何なのかという情報は持ってないので
リストにすればlist[0]で1つめの要素を取得できる(がメモリの使用量が大きくなる欠点がある)
ジェネレータに実装されてるのはnext()じゃなくて__next__()だが
これを直に書いて呼び出す時点で実装は相当頭悪いと言われても仕方ないので別のやり方を考えろ
785:デフォルトの名無しさん
20/08/19 20:37:41 d0Iv/yZR.net
どういうやり方がいいんでしょうか?
特定のフォルダ内の先頭のファイルを取得したいのです。
フォルダは複数です。
786:デフォルトの名無しさん
20/08/19 20:38:04 ZyWH9VuN.net
print(next(folder.glob("*.txt")))
787:デフォルトの名無しさん
20/08/19 20:44:44 D588AZOd.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
788:デフォルトの名無しさん
20/08/19 20:50:09 J4RcMtm3.net
>>760
おい>>626に答えろよ愚図
でもって(・∀・)カエレ!!!
789:デフォルトの名無しさん
20/08/20 07:03:22.08 nC7+Fgym.net
>>754
>>667-674
おまえ舐め過ぎ
必要になったら自分で調べるどころか人に聞けばいいと思ってるだろ
こういう事言っていいのは自分で問題解決出来る奴だけだ
つまりIQ高いとか多言語での知識や経験があるとか、少し試しただけで察せるような者
おまえのような覚えの悪いガイジはチュートは勿論、入門サイト片っ端から周って全部読め
急がば回れ。低脳は一つ一つ、読んで、書いて、試して、考えて、覚えろ
790:デフォルトの名無しさん
20/08/20 08:06:59.14 MbxCNltP.net
ID:d0Iv/yZR
コイツみたいなガイジは無視でいいんじゃないの?
これ、ただのクレクレくんだぞ
791:デフォルトの名無しさん
20/08/20 08:56:08.54 b+jy9VOZ.net
フローチャートは作ったほうがいいの?
792:デフォルトの名無しさん
20/08/20 09:01:40.48 Av1Lrhjm.net
>>766
グループで作業してる等、人に説明する必要が湧くかもしれないなら必要
そうじゃないならマイルール
793:デフォルトの名無しさん
20/08/20 09:19:29.85 Av1Lrhjm.net
>>765
そんなこといったら クレクレくんに失礼だろ! ε=(`・ω・´)プンスカプン!!
ガイジいけぬまヒトモドキでおk!
794:デフォルトの名無しさん
20/08/20 09:37:46.37 ywsFZyvS.net
>>766
フローチャートは非プログラマに対して処理の流れや業務フロー等を説明するために使うもの
プログラムの設計に使うのはプログラムを汚くする原因になるので 絶対NG
795:デフォルトの名無しさん
20/08/20 09:46:49.16 b+jy9VOZ.net
>>769
えっ、設計には使わないのが普通なんですか?
設計するときに流れを整理するために言語化したりしないでしょうか?
796:デフォルトの名無しさん
20/08/20 09:52:41 M1lQ7Vsh.net
設計書なんて作り終わった後に書くもの
797:デフォルトの名無しさん
20/08/20 09:58:06 ywsFZyvS.net
>>770
だったら自然言語で設計すればいい
フローチャートはPythonより抽象度が低いから設計には不適
798:デフォルトの名無しさん
20/08/20 10:18:01.89 61O10j2r.net
直接コード書き始めるのが習慣になって
未だにフローチャートの書き方がわからない
799:デフォルトの名無しさん
20/08/20 10:36:30.14 Av1Lrhjm.net
フローチャートでよくつかう形にかたぬきずみのポストイットあったらいいなー
800:デフォルトの名無しさん
20/08/20 10:37:26.59 b+jy9VOZ.net
>>772
箇条書きで十分なんでしょうか
801:デフォルトの名無しさん
20/08/20 10:53:18.96 ftyO+Q4L.net
枝葉をカットしてUMLやらの流れ図にまで押し込められるまでにかんたん化する
だから図そのものでは設計してない
そしてフローチャートそのものももう古い
なんで学校で教えているのか分からない、
というか、採点しやすい、(採点側であるところの)「わたし」が見て分かり易い、
(プログラミングなんて全くできないバカ=採点するアホでも)とりあえず眺めて満足できる、という理由だけで教えられてるフシがある
バカ向けの書類を作る苦行をさせられてるワケだ。
この種のバカを全排除すればITの効率は上がる
ハンコと同じだね
Cプログラミング診断室/上司が問題/フローチャート
URLリンク(www.pro.or.jp)
802:デフォルトの名無しさん
20/08/20 11:10:58.40 b+jy9VOZ.net
>>776
この代わりの方法というのはどんなものでしょうか?
803:デフォルトの名無しさん
20/08/20 11:36:32.37 H4suG3I9.net
そもそもスクリプト言語ってのが処理の流れを書くものであって
図じゃなくて英語が読めるならインデントの箇条書きみたいなもんでは
804:デフォルトの名無しさん
20/08/20 11:38:34.66 b+jy9VOZ.net
特定のフォルダに存在するフォルダを取得したいです
pathで指定されているフォルダには対象フォルダは2つありますが、上のコードだと結果が1つしか返りません
これのどこがいけないでしょうか?ループの問題だと思いますが、どこを治せばいいですか?
URLリンク(ideone.com)
>>778
フローチャートはやめて、ブロックごとにコメントでも書いておきます
805:デフォルトの名無しさん
20/08/20 11:40:52.91 Av1Lrhjm.net
>>779
(・∀・)カエレ!!
806:チネ!!!(・∀・)
807:デフォルトの名無しさん
20/08/20 12:18:54.29 n3I6y8KW.net
プログラム自体をドキュメントとする。
例えば改訂履歴、関数のパラメータの説明やリターン値などの説明、
ドキュメントを自動生成してくれるツールや、関数を呼び出すときにそれらの説明を表示してくれるIDEなども有る。
jupyterなら関数の説明として表示してくれる。
java ならjavadoc
python ならdocstrnig
VSCode にはautoDocstringが有る。
書き方には色々ありNumpy スタイル、Google スタイルなど有る。
後でsphinx と言うツールでドキュメントとして出すことも可能。Python の公式ドキュメントはこれで作られている。
Numpyスタイル
URLリンク(qiita.com)
Googleスタイル
URLリンク(qiita.com)
808:デフォルトの名無しさん
20/08/20 12:20:16.29 b+jy9VOZ.net
インデクサーを返してました(´・ω・`)
809:デフォルトの名無しさん
20/08/20 12:31:42.97 0IC6eQqF.net
>>777
PADとかNSチャートとか
810:デフォルトの名無しさん
20/08/20 12:34:56.66 n3I6y8KW.net
python のdoctest は、docstring内の実行例までテストしてくれる。
URLリンク(docs.python.org)
doctest モジュールは、対話的 Python セッションのように見えるテキストを探し出し、セッションの内容を実行して、そこに書かれている通りに振舞うかを調べます。 doctest は以下のような用途によく使われています:
モジュールの docstring (ドキュメンテーション文字列) 中にある対話実行例のすべてが書かれている通りに動作するか検証することで、docstring の内容が最新かどうかチェックする。
テストファイルやテストオブジェクト中の対話実行例が期待通りに動作するかを検証することで、回帰テストを実現します。
入出力例を豊富に使ったパッケージのチュートリアルドキュメントが書けます。入出力例と解説文のどちらに注目するかによって、ドキュメントは「読めるテスト」にも「実行できるドキュメント」にもなります。
811:デフォルトの名無しさん
20/08/20 12:54:47.02 b+jy9VOZ.net
>>783
フローチャートと違ってツールがないすね
812:デフォルトの名無しさん
20/08/20 13:09:49.10 H4suG3I9.net
URLリンク(heat-haze.)ハテナblog.com/entry/2016/08/02/232149
> NSチャートが記述できるフリーソフトがないかと探していたところ、
> Structorizerというルクセンブルグ生まれのソフトを見つけた。
813:デフォルトの名無しさん
20/08/20 14:40:54 RX/3qqm6.net
>>757
print(folder.glob("*.txt").__next__())
814:デフォルトの名無しさん
20/08/20 16:09:13.33 b+jy9VOZ.net
ジェネレータとただの配列の違いがまだ分からん
815:デフォルトの名無しさん
20/08/20 16:09:30.99 b+jy9VOZ.net
>>786
使わないですもう
816:デフォルトの名無しさん
20/08/20 16:29:15.09 MbxCNltP.net
ID:b+jy9VOZ
コテハンにしろやカス
817:デフォルトの名無しさん
20/08/20 16:29:37.16 RX/3qqm6.net
>>788
decorator
818:デフォルトの名無しさん
20/08/20 18:36:09 b+jy9VOZ.net
ジェネレータは添字がないのなら、何を目印にしているんですか?データそのものの文字列とかですかね>
819:デフォルトの名無しさん
20/08/20 19:45:06.52 YSF0Eeed.net
今ならハーバード大学の授業、2021年まで無料です。
PythonとJavaScriptのクラスもありますよ。
英語できたらそこらのスクールにお金払わずとも、ハーバード大学でプログラミング学べるって、
やはり英語最強ですね。
URLリンク(online-learning.harvard.edu)
820:デフォルトの名無しさん
20/08/20 20:22:54.82 b+jy9VOZ.net
os.renameで2つの引数に複数の値を指定した場合どういうループ構造にするといいですか?
target = [target1,target2]
replace = [replace1,replace2]
os.rename(target,replace)じゃ�
821:セめですよね
822:デフォルトの名無しさん
20/08/20 20:43:24.25 N3Xth98n.net
for t, r in zip(target, replace):
____os.rename(t, r)
823:デフォルトの名無しさん
20/08/21 01:47:19.85 90ZFpIps.net
python関連でググると高確率で、techacademyとかいうサイトがヒットする。
そして毎回、冒頭の男女二人の会話にイライラしながらスクロールするのだ。
会話最後の女のノー天気な「お願いします!」が余計怒りを増幅させてくれる。
824:デフォルトの名無しさん
20/08/21 01:48:49.78 XVkUYwIF.net
その上大したこと書いてないんだよなw
825:デフォルトの名無しさん
20/08/21 06:20:34 Doj8MI0n.net
絶対お礼は言わないスタイル
826:デフォルトの名無しさん
20/08/21 07:46:35 tsTF4yfi.net
>>794
おい
次書き込みするときから
名前欄に「アホループジェネレータ」って書け
827:デフォルトの名無しさん
20/08/21 11:03:07 6zccVHNz.net
NG sejuku
NG techacademy
微妙 teratail
828:デフォルトの名無しさん
20/08/21 11:25:07.17 tDzk/wNZ.net
東京フリーランスのとだこうきが、デイトラに、
9万円のRuby on Rails のコースを作って、価格破壊を起こした!
1年で、デイトラの企業価値、10億円を目指すとか
他校と違って、宣伝費・就職サポートが無いから、安い
829:デフォルトの名無しさん
20/08/21 11:26:30.64 6zccVHNz.net
NG Ruby
NG Rails
830:デフォルトの名無しさん
20/08/21 11:40:30.58 wZ5cw6nF.net
なんでRuby馬鹿はPython スレを荒らすんだ? Ruby スレから出てくんな
831:デフォルトの名無しさん
20/08/21 12:32:43 C+12ovPZ.net
>>801
荒らしついでに宣伝かよ
832:デフォルトの名無しさん
20/08/21 13:11:59.76 wUhiKu+g.net
まあこいつが宣伝するとネガティブな効果しかないけどなw
おそらくこいつが言及している人物なりサービスの提供元からすれば、糞な書き込みに俺の名を出すなと言いたいことだろう
833:デフォルトの名無しさん
20/08/21 16:02:11.66 +Rz1kvU3.net
pysimpleGUIで**って表記が出てきます
なんとなくobj = {"key1":"val1","key2":"val2"}
みたいな辞書のkeyとvalueを展開してるんだろうなくらいの認識なのですが
そもそも**はどうやって使えるようにしてるのでしょうか
print(**obj)とかやってもエラーでました
834:デフォルトの名無しさん
20/08/21 16:18:26.58 gMJ0SiA5.net
>>806
Pythonの可変長引数(*args, **kwargs)の使い方
URLリンク(note.nkmk.me)
835:デフォルトの名無しさん
20/08/21 16:32:14.37 +Rz1kvU3.net
>>807
なるほど受取り側の関数の引数名がkey1やkey2でないといけないわけですね
つまり(pysimpleGUIメソッドを使うときに**で渡していた)辞書のキー名は
pysimpleGUI内で使う引数名と一致する必要があったのですね
ありがとうございます
836:デフォルトの名無しさん
20/08/21 16:37:01.40 LJcgyDKT.net
かわ∃
530 (ワッチョイW 1fc5-4PbC) 2020/08/21(金) 16:29:12.94 ID:63P3hyCP0 (PC)
Pythonのインテンドルールに通ずるものがある
837:デフォルトの名無しさん
20/08/21 16:37:47.50 2LaXNW9i.net
ちょっと変な理解の仕方だな
838:デフォルトの名無しさん
20/08/21 16:55:32.31 gMJ0SiA5.net
>>808
ちょっと違�
839:、 どんなコードを見てそう思ったかは分からんけど まず**自体について これ関数の引数がhoge(**kwargs)で定義されてたら 引数をdict型として受け取る、という情報になる (dictの詳細な型情報をいちいち記載しなくても使えるという利点がある) >つまり(pysimpleGUIメソッドを使うときに**で渡していた)辞書のキー名は >pysimpleGUI内で使う引数名と一致する必要があったのですね これについはのその関数がどういう実装をしているかによる というか、辞書のキー名指定があるものを**kwargsで受け取る仕様にしてたら バグの元にしかならんから、たぶん違うと思うぞ
840:デフォルトの名無しさん
20/08/21 17:55:23 +Rz1kvU3.net
>>811
引数をdict型として受け取る意味合いがあったのですね
hoge2とhoge3の使い分けが今一わからなかったので
関数側もhoge1みたいに引数で主張するもんだと思っていました
obj = {"key1":"val1","key2":"val2"}
def hoge1(n, *, key1, key2):
print(n)
print(key1)
print(key2)
def hoge2(**kwargs):
for k,v in kwargs.items():
print(v)
def hoge3(obj):
for k,v in obj.items():
print(v)
hoge1(10,**obj)
hoge2(**obj)
hoge3(obj)
pysimpleguiではsg.Button("忘れた", **style)
みたいな感じで使われてました
あらためて調べたところ
URLリンク(github.com)
にButton Class がありました(これかどうかはわかりません)がhoge1みたいにやってるみたいでした
841:デフォルトの名無しさん
20/08/21 18:00:08 2LaXNW9i.net
嘘を撒き散らすな
ちゃんと仕様読め
842:デフォルトの名無しさん
20/08/21 18:03:34.81 +Rz1kvU3.net
訂正
>pysimpleguiではsg.Butto
というより、どこかのサイトでpysimpleguiを使ったコードの中では
でした
843:デフォルトの名無しさん
20/08/21 18:18:10 Our4I64+.net
URLリンク(ideone.com)
フォルダの先頭のファイルを拾ってそのファイル名を親フォルダ名としたいのですが、os.renameの箇所が動きません
どこが駄目ですか?
フォルダの取得とファイルの取得はいけました
コード汚くてすません(´・ω・`)自分でも読めない
844:デフォルトの名無しさん
20/08/21 18:21:29.95 wdJR2uWM.net
>>815
全部駄目
まずはコテハンにしてください
845:デフォルトの名無しさん
20/08/21 19:01:28 .net
>>815
folder_pathがpathlibオブジェクトのままでは
str(folder_path)
846:デフォルトの名無しさん
20/08/21 19:03:59 gMJ0SiA5.net
>>815
Pythonのイテレータとジェネレータ
URLリンク(qiita.com)
>ジェネレータは一度forループで回したりすると2回目以降のforループでは要素が出てきません。
これをまず100回ぐらい読め
その呼び出し方だと、replace_text側のlistが空で返ってくる
で、直すとこんな感じ
こっちの環境で動かす時に関係ないフォルダがリネームされかけたから
暫定的な処理を入れてるけど、その辺は自分で消しておいて
URLリンク(ideone.com)
847:デフォルトの名無しさん
20/08/21 19:04:28 .net
と、思ったらpathlibのままでもいけたわすまん >>817
848:デフォルトの名無しさん
20/08/21 20:11:10.28 Our4I64+.net
>>818
>>817
どうも、このままだと動かなかったので改造してみます
フォルダ構造はこうです
root
┣folder1
┣folder2
┗rename.py(ここにファイルを書きました)
849:デフォルトの名無しさん
20/08/21 21:01:30.63 .net
最初の方
getfile1 = path.glob("*")
getfile2 = path.glob("*")
最後の方
zip(getfolderlist(getfile1) , getfilename(getfolderlist(getfile2)))
ってやったら普通にリネームされたけどね
root
┣folder1 - folder11.txt
┣folder2 - folder22.txt,folder33.txt
┗rename.py
実行後、folder11,folder22へ
850:デフォルトの名無しさん
20/08/21 21:09:57 I19Kw4RE.net
イテカスとそいつにレスしてるカス
両方ウゼーな
851:デフォルトの名無しさん
20/08/21 21:23:19.74 yq0UM+AD.net
>>796
あのサイトあの会話部分を取り除いて
簡潔に書いてくれれば読む気になるのに
852:な 会話が目に入った瞬間にあのサイトから離れるわ
853:デフォルトの名無しさん
20/08/21 21:50:49 90ZFpIps.net
>>823
ほんと、会話部分は蛇足だよね
内容は参考になることもあるから、もったいないよ
854:デフォルトの名無しさん
20/08/21 22:26:13 tanKrWk4.net
Pythonはnkmk、Mysqlはdbonline
ここが引っかからなかったらそれ以上わかりやすいサイトはないので検索ワードを変えるか別の方法を考える
855:デフォルトの名無しさん
20/08/21 22:50:16.67 dVj0R0f+.net
scipy入りのexe作って起動して終了するとプロセス残る なんでじゃー!?
856:デフォルトの名無しさん
20/08/21 23:04:31.80 pdmQ8l2w.net
なんでそんなexe化したがるんだろう
857:デフォルトの名無しさん
20/08/22 00:51:34.17 085RHOCy.net
配布したいからじゃない
858:デフォルトの名無しさん
20/08/22 06:54:01.74 Z35Hz91D.net
>>821
どうも
すみませんが、全コードもらえませんか?
どこが動いてないのか分からないです
859:デフォルトの名無しさん
20/08/22 08:11:12.71 ijYeSvCP.net
>>829
💩
860:デフォルトの名無しさん
20/08/22 08:49:26 gcesWmrW.net
まあそうなるわな
861:デフォルトの名無しさん
20/08/22 09:14:49.23 EOc6Tb4U.net
ギブアップしてクレクレし始めたな
次は改変の仕方を質問してまたクレクレするのだろう
もうキッチリ仕様決めて文書化して依頼スレにでも行けよ
862:デフォルトの名無しさん
20/08/22 10:43:45.55 1SZISF1a.net
>>640
に書いておいた
まず事前に、チェックツールを作って、それでチェックしないと危険。
例えば、5個までrename に成功して、6個目でエラーになった場合に、元に戻せないだろ
フォルダ内を走査しながら、フォルダ名を変えるとか、
こういうのは最も危険な行為
事前にすべてを取得して、変更前後で、整合性が取れているか、チェックすべき!
それと必ず、全データを別の場所へ、バックアップしておくこと!
初心者が大規模に、フォルダ処理をするのは、非常に危険だから
それと質問者は、最初に質問したレス番号を、名前欄に入力してくれ。
誰が書いているのか、分かりにくいから