!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに補充すること。
・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
エラー文(勝手に省略orスクショうp等の横着禁止)と
おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。
※前スレ
Pythonのお勉強 Part72
https://mevius.5ch.net/test/read.cgi/tech/1703659345/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
Pythonのお勉強 Part73
レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん (ワッチョイ f610-G7il)
2024/06/06(木) 08:48:10.07ID:DsazphEm0808デフォルトの名無しさん (ワッチョイ 6754-DWku)
2024/09/03(火) 22:36:18.67ID:b8qS9knc0 なんか知らんけど、勉強する気のない奴が紛れ込んでるんだよな
809デフォルトの名無しさん (ワッチョイ e768-3eZc)
2024/09/04(水) 10:07:28.75ID:1egc59UO0 slenium使ってWebページの巡回してますが、CSSセレクターやxpathが日によって変動する場合の対処法をご教授願えれば幸いに存じ上げマッスルマッスル。
810デフォルトの名無しさん (ワッチョイ 6754-DWku)
2024/09/04(水) 13:21:36.89ID:8f/9E+Y70 フルで指定しなくても部分でもいけるので、変わらない部分を使う
811デフォルトの名無しさん (ワッチョイ 6754-DWku)
2024/09/04(水) 16:46:15.23ID:8f/9E+Y70 またストリームっぽい話
デリミタ行があって、それで区切った単位で処理する
デリミタを見つけたら処理、みたいにすると、デリミタ無しで終了した場合に最後が抜ける
元データの方で最後にもデリミタを入れる
ループを抜けた後に同じ処理を追加する
デリミタ or EOF みたいな判定にする
等の対応があって、EOFがスマートそう
でもEOFの検出が大変
ファイルを1行ずつ読んでても次を読んでみないと判らないし、
iterでも例外を起こすとか、リストが対象だったらコピーしといてpopしていって空か見るとか
最後まで行ったら自動で終わる処理はとても書きやすいのに、
最後の処理の最中に最後だと判定するのが困難
デリミタ行があって、それで区切った単位で処理する
デリミタを見つけたら処理、みたいにすると、デリミタ無しで終了した場合に最後が抜ける
元データの方で最後にもデリミタを入れる
ループを抜けた後に同じ処理を追加する
デリミタ or EOF みたいな判定にする
等の対応があって、EOFがスマートそう
でもEOFの検出が大変
ファイルを1行ずつ読んでても次を読んでみないと判らないし、
iterでも例外を起こすとか、リストが対象だったらコピーしといてpopしていって空か見るとか
最後まで行ったら自動で終わる処理はとても書きやすいのに、
最後の処理の最中に最後だと判定するのが困難
812デフォルトの名無しさん (ワッチョイ 5f4d-JZrR)
2024/09/04(水) 16:53:37.40ID:mtP1OC380 日本語を見ればプログラミング適性がないのがよくわかる
813デフォルトの名無しさん (ワッチョイ 479f-7hP0)
2024/09/04(水) 17:15:00.32ID:u5L50CbY0 デリミタ行以外で終端になったら
追加でデリミタ行を返すイテレータを書くだけ
追加でデリミタ行を返すイテレータを書くだけ
814デフォルトの名無しさん (ワッチョイ 6754-DWku)
2024/09/04(水) 17:24:08.15ID:8f/9E+Y70 データ数nでデリミタ数n-1、という気持ち悪い状態が自然によくあるんだよな
joinで結合して、splitで分解するのと同様に、
デリミタで分解する処理を最初に入れるのが多分正解
最後のデリミタがあってもなくてもいいようにしないといけない
joinで結合して、splitで分解するのと同様に、
デリミタで分解する処理を最初に入れるのが多分正解
最後のデリミタがあってもなくてもいいようにしないといけない
815デフォルトの名無しさん (ワッチョイ 6754-DWku)
2024/09/04(水) 17:28:38.80ID:8f/9E+Y70 分解する処理が全く同じ問題にぶつかるんですが
816デフォルトの名無しさん (ワッチョイ 87a9-vKF2)
2024/09/04(水) 17:30:47.74ID:6BJD9ak60817デフォルトの名無しさん (ワッチョイ 6754-DWku)
2024/09/04(水) 17:33:35.02ID:8f/9E+Y70 perlだったら、f = open(file) みたいなので取得したファイルオブジェクトに対して
eof(f) を見たら終端に達してるかどうかが判る
pythonでもf.eof() みたいなのを作っといてくれればいいのに無いというのは、
そんなプログラムは書くなという明示的な意図なんだろうな
便利なのになー
なんで駄目なんだろ
eof(f) を見たら終端に達してるかどうかが判る
pythonでもf.eof() みたいなのを作っといてくれればいいのに無いというのは、
そんなプログラムは書くなという明示的な意図なんだろうな
便利なのになー
なんで駄目なんだろ
818デフォルトの名無しさん (ワッチョイ 6754-DWku)
2024/09/04(水) 17:54:41.94ID:8f/9E+Y70 仕方ないからsplitのlist版を汎用で書いて、自分用ライブラリに入れとこう
これも意地悪で存在しないのか?
これも意地悪で存在しないのか?
819デフォルトの名無しさん (ワッチョイ 479f-7hP0)
2024/09/04(水) 18:09:05.10ID:u5L50CbY0 more_itertools.split_ナントカ
820デフォルトの名無しさん (ワッチョイ ff7c-rxv+)
2024/09/04(水) 19:07:28.42ID:8eJhy0Tz0 >>0811
1行単位で読みつつ複数行単位で処理したいループのあるあるだね
Pythonならイテレータやジェネレータを使うかも
https://ideone.com/qSuDAt
なるほどジェネレータの処理が“全く同じ問題にぶつか”ってて、
この例ではそこを「ループを抜けた後に同じ処理を追加する」でやってることになるかな
まあでも、泥臭いことをここに押し付けて、メインのループがブロック単位でまわせるのがよい
だいたい、ふだん行単位でまわせるのもライブラリが泥臭いことしてるおかげだし
1行単位で読みつつ複数行単位で処理したいループのあるあるだね
Pythonならイテレータやジェネレータを使うかも
https://ideone.com/qSuDAt
なるほどジェネレータの処理が“全く同じ問題にぶつか”ってて、
この例ではそこを「ループを抜けた後に同じ処理を追加する」でやってることになるかな
まあでも、泥臭いことをここに押し付けて、メインのループがブロック単位でまわせるのがよい
だいたい、ふだん行単位でまわせるのもライブラリが泥臭いことしてるおかげだし
821デフォルトの名無しさん (ワッチョイ 6754-DWku)
2024/09/04(水) 19:46:26.52ID:8f/9E+Y70822デフォルトの名無しさん (スプッッ Sdff-UdSI)
2024/09/04(水) 20:41:57.33ID:gNKcgXFOd こういうバカに産まれなくてホントに良かったよ
CSVなんかでも最後にカンマあるとかねーとかでうんうん言うんかな
CSVなんかでも最後にカンマあるとかねーとかでうんうん言うんかな
823デフォルトの名無しさん (ワッチョイ 6754-DWku)
2024/09/04(水) 20:59:08.55ID:8f/9E+Y70 セパレータで区切って1行になってたら最後にはセパレータがあってほしくない
文字列を改行で区切って並べるなら、最後にも改行があって欲しい
等価なことをやってる筈なのに、区切りが改行の時だけ例外なんだよな
'\n'.join(l) + '\n'
みたいなことをやる羽目になって、それが正しいんだけど不便
文字列を改行で区切って並べるなら、最後にも改行があって欲しい
等価なことをやってる筈なのに、区切りが改行の時だけ例外なんだよな
'\n'.join(l) + '\n'
みたいなことをやる羽目になって、それが正しいんだけど不便
824デフォルトの名無しさん (ワッチョイ 7f34-lL3G)
2024/09/05(木) 00:04:43.15ID:J+Hr7uF60 汚れ仕事になると分かってるなら
そこだけ分離するな
そこだけ分離するな
825デフォルトの名無しさん (アウアウエー Sa1f-XN8b)
2024/09/05(木) 00:12:14.06ID:/oUqYYg3a >>811
readerにfinalizeを用意させれば良い
readerにfinalizeを用意させれば良い
826デフォルトの名無しさん (アウアウエー Sa1f-XN8b)
2024/09/05(木) 00:14:42.60ID:/oUqYYg3a >>822
range(start, end) で end - 1 までになるのが納得いかないとか言い出しそうだよね
range(start, end) で end - 1 までになるのが納得いかないとか言い出しそうだよね
827デフォルトの名無しさん (ワッチョイ 6754-DWku)
2024/09/05(木) 12:37:32.12ID:yOHjemdL0 これが汚れ仕事になってしまうのは、プログラム的な正しさと人間の正しさの感覚の齟齬があるんだろうな
pascalで行末にセミコロンを付ける
でもこれはセパレータなので、最後の行にも付けるとエラーにされる
ふざけんなということで、Cではセパレータではなく行末記号になった
今度は最後にも付けないとエラー
a = [
aaa,
bbb,
ccc,
]
最後のコンマは要らないけど、あった方が書きやすいし、勝手にヌル要素が追加されたりもしない
無視されるだけ
a = func(a, b, c,)
これも許容される
でも気持ち悪いから、多分こうは書かない
最後の余分なセパレータに対する統一的な方針は無い
pascalで行末にセミコロンを付ける
でもこれはセパレータなので、最後の行にも付けるとエラーにされる
ふざけんなということで、Cではセパレータではなく行末記号になった
今度は最後にも付けないとエラー
a = [
aaa,
bbb,
ccc,
]
最後のコンマは要らないけど、あった方が書きやすいし、勝手にヌル要素が追加されたりもしない
無視されるだけ
a = func(a, b, c,)
これも許容される
でも気持ち悪いから、多分こうは書かない
最後の余分なセパレータに対する統一的な方針は無い
828デフォルトの名無しさん (ワッチョイ ff7c-rxv+)
2024/09/05(木) 13:31:44.17ID:Uxm0hRsL0 >>0823
「最後にもセパレータがある」は矛盾してるよ
最後のセパレータの次には空の要素があるとみなすべき
それぞれの要素の後に記号をつける場合その記号は「ターミネータ」
記号は改行だけとは限らず「foo;bar;baz;」とかでもよい
ターミネータ式では「foo;bar;baz」は厳密には ["foo", "bar"] にゴミがついてるとみなすけど、最後の要素とみなすことも多い。それでも「foo;bar;」で最後に空の要素があるとはみなさないのでセパレータとは違う
splitやjoinはセパレータ式を扱うものだから、ターミネータ式の分割と結合に使うとき小細工が必要なのは仕方ない
>>0823 の「等価な筈なのに〜」だの「セパレータが改行のときだけ」だのも区別がついてない
「ターミネータの場合は」なの
# セパレータをカンマからタブに
csv = "foo,bar,baz"
list = csv.split(",")
tsv = "\t".join(list)
# ターミネータをセミコロンから改行に
stv = "foo;bar;baz;"
list = stv.split(";")[:-1] # 小細工
ltv = "\n".join(ltv) + "\n" # 小細工
「最後にもセパレータがある」は矛盾してるよ
最後のセパレータの次には空の要素があるとみなすべき
それぞれの要素の後に記号をつける場合その記号は「ターミネータ」
記号は改行だけとは限らず「foo;bar;baz;」とかでもよい
ターミネータ式では「foo;bar;baz」は厳密には ["foo", "bar"] にゴミがついてるとみなすけど、最後の要素とみなすことも多い。それでも「foo;bar;」で最後に空の要素があるとはみなさないのでセパレータとは違う
splitやjoinはセパレータ式を扱うものだから、ターミネータ式の分割と結合に使うとき小細工が必要なのは仕方ない
>>0823 の「等価な筈なのに〜」だの「セパレータが改行のときだけ」だのも区別がついてない
「ターミネータの場合は」なの
# セパレータをカンマからタブに
csv = "foo,bar,baz"
list = csv.split(",")
tsv = "\t".join(list)
# ターミネータをセミコロンから改行に
stv = "foo;bar;baz;"
list = stv.split(";")[:-1] # 小細工
ltv = "\n".join(ltv) + "\n" # 小細工
829デフォルトの名無しさん (ワッチョイ 7f34-lL3G)
2024/09/05(木) 14:35:40.58ID:J+Hr7uF60 セパレータなのか終端記号なのかというところに
統一的な見解を作るのは無理だろう
統一的な見解を作るのは無理だろう
830デフォルトの名無しさん (ワッチョイ 2701-Ve+T)
2024/09/05(木) 15:30:26.64ID:gQmEldZ20831デフォルトの名無しさん (アウアウエー Sa1f-XN8b)
2024/09/05(木) 23:28:48.64ID:/+8Jbbe1a832デフォルトの名無しさん (ワッチョイ 5f5c-1cCN)
2024/09/05(木) 23:37:18.89ID:mXpnohHX0 それ終端なのかよURIの記法ってそうだっけパスの頭じゃねーの?
833デフォルトの名無しさん (ワッチョイ 6754-DWku)
2024/09/05(木) 23:37:57.01ID:yOHjemdL0 urlもそうだし、パスを分解する時も、なんだこの不規則はと悩む
C:/
は/が無いと意味不明になる
でも
C:/bin/
C:/bin
はどっちもあり
ファイルとディレクトリを同列に扱いたいというスタンスからすると、末尾の/はあって欲しくない
でもルートの場合は必要
どっちかに統一しないと、
f'{path}/{filename}'
みたいに書けない
仕方ないので、あってもなくてもいいけど、あったら無視する
という汚れ仕事吸収層に任せることに
C:/
は/が無いと意味不明になる
でも
C:/bin/
C:/bin
はどっちもあり
ファイルとディレクトリを同列に扱いたいというスタンスからすると、末尾の/はあって欲しくない
でもルートの場合は必要
どっちかに統一しないと、
f'{path}/{filename}'
みたいに書けない
仕方ないので、あってもなくてもいいけど、あったら無視する
という汚れ仕事吸収層に任せることに
834デフォルトの名無しさん (ワッチョイ 8779-55Je)
2024/09/06(金) 00:52:19.42ID:0I3gstue0 urlといいうか、*nixはスラッシュ止が本来なんだっけ?
それにしてもファイルパスは意外と厄介
rsyncみたいに、スラッシュがあるかないかで振る舞いが全く異なるものもあるし
それにしてもファイルパスは意外と厄介
rsyncみたいに、スラッシュがあるかないかで振る舞いが全く異なるものもあるし
835デフォルトの名無しさん (ワッチョイ 5f56-q2Ob)
2024/09/06(金) 00:54:13.81ID:R0hAYngZ0 最初の/は、ルートではなく絶対パスの意味
長さゼロの文字列はカレントディレクトリかなぁ
ドライブ指定のみ
C:
ドライブ指定+絶対パス指定
C:/
ドライブ指定+相対パス指定
C:.
C:/Users>cd /d D:/
D:/>cd /d C:.///.//yamada///Music//
C:/Users/yamada/Music>
となるし
長さゼロの文字列はカレントディレクトリかなぁ
ドライブ指定のみ
C:
ドライブ指定+絶対パス指定
C:/
ドライブ指定+相対パス指定
C:.
C:/Users>cd /d D:/
D:/>cd /d C:.///.//yamada///Music//
C:/Users/yamada/Music>
となるし
836デフォルトの名無しさん (オイコラミネオ MMcb-rxv+)
2024/09/06(金) 08:29:25.15ID:FtlRyc/CM >>830
820 と 828 にツッコミありがと そのとおりだね
いずれにせよ811や823の参考になればと思ったけれど
833までみるとプログラミングやPythonの勉強よりは別のことをしたいみたいだ
820 と 828 にツッコミありがと そのとおりだね
いずれにせよ811や823の参考になればと思ったけれど
833までみるとプログラミングやPythonの勉強よりは別のことをしたいみたいだ
837デフォルトの名無しさん (スププ Sd7f-8MDM)
2024/09/06(金) 12:59:23.01ID:5V/vqJZed もうメンテナンスしかやることねえ・・
838デフォルトの名無しさん (ワッチョイ 0701-F2Kr)
2024/09/06(金) 13:05:03.70ID:8mJhneNM0839デフォルトの名無しさん (ワッチョイ 278b-k4Tl)
2024/09/06(金) 15:15:22.20ID:kb80ato/0 ほぼ知識ゼロの状態からPythonでアプリを作るのは無謀?
840デフォルトの名無しさん (ワッチョイ 7f34-lL3G)
2024/09/06(金) 16:28:40.66ID:b7WWclpu0 知識ゼロにも色々あってな
プログラミング自体やったことがないのか
Pythonでやったことがないだけなのか
プログラミング自体やったことがないのか
Pythonでやったことがないだけなのか
841デフォルトの名無しさん (スッップ Sd7f-CFO5)
2024/09/06(金) 16:35:05.78ID:e4ITOx4xd PC触ったことないとか
842デフォルトの名無しさん (ワッチョイ 5f87-F2Kr)
2024/09/06(金) 16:43:13.12ID:QtgCCsYf0843デフォルトの名無しさん (ワッチョイ 278b-k4Tl)
2024/09/06(金) 16:43:15.17ID:kb80ato/0 プログラミングの知識はほぼゼロ
unreal engineのC++に何が書いてあるのかわからない
コードの書き方の知識もほぼゼロ
unreal engineのC++に何が書いてあるのかわからない
コードの書き方の知識もほぼゼロ
844デフォルトの名無しさん (ワッチョイ 278b-k4Tl)
2024/09/06(金) 16:44:13.37ID:kb80ato/0 >>842
良い書籍や動画を教えてくれると助かる
良い書籍や動画を教えてくれると助かる
845デフォルトの名無しさん (ワッチョイ 278b-k4Tl)
2024/09/06(金) 16:47:34.80ID:kb80ato/0 組みたいプログラムはオレの知る限り、おそらく一般には採用されてないけど、そんなに複雑なものでもないと思う
なので、信頼してる人しか組みたいプログラムは教えたくない
なので、信頼してる人しか組みたいプログラムは教えたくない
846デフォルトの名無しさん (スッップ Sd7f-CFO5)
2024/09/06(金) 16:52:45.07ID:e4ITOx4xd847デフォルトの名無しさん (ワッチョイ 278b-k4Tl)
2024/09/06(金) 16:56:57.72ID:kb80ato/0848デフォルトの名無しさん (ワッチョイ 278b-k4Tl)
2024/09/06(金) 16:58:56.36ID:kb80ato/0 >>846
どのリストから見れば良い?w
どのリストから見れば良い?w
849デフォルトの名無しさん (ワッチョイ 278b-k4Tl)
2024/09/06(金) 17:01:38.70ID:kb80ato/0 UE使う時にvisual studio入れた
サッパリだったけど…
サッパリだったけど…
850デフォルトの名無しさん (スッップ Sd7f-CFO5)
2024/09/06(金) 17:06:47.23ID:e4ITOx4xd851デフォルトの名無しさん (ワッチョイ 2728-k4Tl)
2024/09/06(金) 17:12:45.49ID:kb80ato/0 >>850
Python落として、visual studioとあと何が必要?
Python落として、visual studioとあと何が必要?
852デフォルトの名無しさん (ワッチョイ 2728-k4Tl)
2024/09/06(金) 17:15:47.84ID:kb80ato/0 ↑で紹介してくれた人、書籍出してるんだな
それも買います
それも買います
853デフォルトの名無しさん (ワッチョイ bf57-a21C)
2024/09/06(金) 18:29:38.57ID:B348q7Ai0 Pythonとvscodeがあればその動画の内容くらいなら十分できるだろう
854デフォルトの名無しさん (ワッチョイ e779-g3wY)
2024/09/06(金) 18:30:39.41ID:060imtVw0 サプー3D前の方が好き
855デフォルトの名無しさん (ワッチョイ 07b7-fene)
2024/09/06(金) 19:19:30.06ID:jTHLjygZ0 >>854
本の表紙がかわいい
本の表紙がかわいい
856デフォルトの名無しさん (ワッチョイ 276a-55Je)
2024/09/06(金) 19:48:13.50ID:PgSZcrVr0 >>844
自分が勉強した順。
PaizaというサイトでPython3に関してはある程度の部分まで無料で学べる。
講座は動画、各項目毎に小テスト。
とりあえずは環境を整えなくてもオンライン上で実行環境が用意されている。
自分はそこで最低限の文法を勉強してから他の動画やネット上のソースを見たりした。
見たソースは、最初のうちは極力ソース内のあちこちに細かく「〇〇する」とか」コメントがあるもの。
そういうものを見て「あー、この部分数行でファイルを読み込むんだ」とか、
「こうやって流れを繋げていくんだ」ってのを理解した。
自分が勉強した順。
PaizaというサイトでPython3に関してはある程度の部分まで無料で学べる。
講座は動画、各項目毎に小テスト。
とりあえずは環境を整えなくてもオンライン上で実行環境が用意されている。
自分はそこで最低限の文法を勉強してから他の動画やネット上のソースを見たりした。
見たソースは、最初のうちは極力ソース内のあちこちに細かく「〇〇する」とか」コメントがあるもの。
そういうものを見て「あー、この部分数行でファイルを読み込むんだ」とか、
「こうやって流れを繋げていくんだ」ってのを理解した。
857デフォルトの名無しさん (ワッチョイ e7f9-g3wY)
2024/09/06(金) 21:20:10.00ID:060imtVw0 >>855
表紙かわいい
表紙かわいい
858デフォルトの名無しさん (ワッチョイ 277a-k4Tl)
2024/09/06(金) 22:41:41.57ID:kb80ato/0 みんなありがとう
色々実践してみます
色々実践してみます
859デフォルトの名無しさん (ワッチョイ 6754-DWku)
2024/09/07(土) 09:57:52.65ID:wncxx9TU0 >>776を作ってみた
取得した結果を入れておく場所と、見つかったかどうかのフラグと、セマフォをglobalで共有する
フラグは本当は呼び出し側で処理したかったけど、result()を得ようとしたら終了待ちするので意味がない
履歴を記録しておくファイルもあって、その都度開いて追記して閉じる
他のスレッドと衝突しないかどうかは運次第
取得した結果を入れておく場所と、見つかったかどうかのフラグと、セマフォをglobalで共有する
フラグは本当は呼び出し側で処理したかったけど、result()を得ようとしたら終了待ちするので意味がない
履歴を記録しておくファイルもあって、その都度開いて追記して閉じる
他のスレッドと衝突しないかどうかは運次第
860デフォルトの名無しさん (ワッチョイ 479f-7hP0)
2024/09/07(土) 10:13:06.85ID:frLS0o200 スレッドじゃなく別プロセスでやればええんでは
ライブラリが行うプールの管理だけで済む
ライブラリが行うプールの管理だけで済む
861デフォルトの名無しさん (ワッチョイ 7fdb-8MDM)
2024/09/07(土) 11:35:00.37ID:vd/lqcQo0 それな
おれも普通にプロファイル作ってるわ
ただ1プロファイルにつきたしか600MBくらい使ったけど
おれも普通にプロファイル作ってるわ
ただ1プロファイルにつきたしか600MBくらい使ったけど
862デフォルトの名無しさん (ワッチョイ 6754-DWku)
2024/09/07(土) 12:27:26.22ID:wncxx9TU0 プロセスを別にするのは重い計算とかでCPUコアを分けたい時で、
ネットワークの待ち時間の間に他のことをしたいだけなのでスレッドでいい
ネットワークの待ち時間の間に他のことをしたいだけなのでスレッドでいい
863デフォルトの名無しさん (ワッチョイ c7f0-rxv+)
2024/09/07(土) 13:58:10.84ID:j/xwjrvk0864デフォルトの名無しさん (ワッチョイ 479f-7hP0)
2024/09/07(土) 16:04:12.37ID:frLS0o200 >>862
マイコンやキオスク端末ならわかるけど
デスクトップOSなんてプロセス無数に動いてる
コンテキスト切り替えが多発したりリソース気にするんじゃなけれりゃ
たいしてスレッドにこだわる意味はない
Chromeもプログラム構成優先してがんがんプロセス生成してる
マイコンやキオスク端末ならわかるけど
デスクトップOSなんてプロセス無数に動いてる
コンテキスト切り替えが多発したりリソース気にするんじゃなけれりゃ
たいしてスレッドにこだわる意味はない
Chromeもプログラム構成優先してがんがんプロセス生成してる
865デフォルトの名無しさん (ワッチョイ 6754-DWku)
2024/09/07(土) 16:47:27.15ID:wncxx9TU0 別に拘りは無い
どっちでも同じ
コード上もThreadPoolExecutorをProcessPoolExecutorと書き換えるだけ
実際の中身の処理はかなり変わるけど、どっちにしろ待ち時間が大半なので何も変わらない
processである必要が無いのにprocessにしてあると、なんで???と思われるだけ
どっちでも同じ
コード上もThreadPoolExecutorをProcessPoolExecutorと書き換えるだけ
実際の中身の処理はかなり変わるけど、どっちにしろ待ち時間が大半なので何も変わらない
processである必要が無いのにprocessにしてあると、なんで???と思われるだけ
866デフォルトの名無しさん (ワッチョイ df90-XDF5)
2024/09/07(土) 18:09:51.60ID:Zt7rxXUV0 seleniumは並行に大量のページにアクセスするのには向かない
I/O待ちでもブロッキングするしかなくセッション単位で別のブラウザーインスタンスが必要だからリソース馬鹿喰い
今は代替ツールがあるので新しく書くコードならそっちを使う
I/O待ちでもブロッキングするしかなくセッション単位で別のブラウザーインスタンスが必要だからリソース馬鹿喰い
今は代替ツールがあるので新しく書くコードならそっちを使う
867デフォルトの名無しさん (ワッチョイ 6754-DWku)
2024/09/07(土) 18:49:21.06ID:wncxx9TU0 seleniumは多重処理関係なく重いというか大げさだけどね
本物のブラウザそのものだし
互換品や簡易版で動くようなサイトなら、最初からrequestsで済ませるけど、
本物じゃないと動作が怪しいなら本物を使うしかない
本物のブラウザそのものだし
互換品や簡易版で動くようなサイトなら、最初からrequestsで済ませるけど、
本物じゃないと動作が怪しいなら本物を使うしかない
868デフォルトの名無しさん (ワッチョイ e738-NFcD)
2024/09/07(土) 19:00:23.61ID:zesuODdH0 はやさなら
パンダ<美汁<セレン
パンダ<美汁<セレン
869デフォルトの名無しさん (ワッチョイ e738-NFcD)
2024/09/07(土) 19:01:17.02ID:zesuODdH0 間違った反対
870デフォルトの名無しさん (ワッチョイ 6754-DWku)
2024/09/07(土) 19:14:37.88ID:wncxx9TU0 重いだけで済むんだから楽なもん
perlでmechanizeとか紹介されてて、なんか便利そうだと思って使ってみても、
便利でも何でもない
スクリプトとかあったら人間が解析しないといけない
selenium使ってさえ、取得したpage_sourceがスクリプトの塊で、
謎に分割されてたり、jsonっぽいけどjsonじゃなかったり、
スクレイピング避けのいたちごっこが続いている
perlでmechanizeとか紹介されてて、なんか便利そうだと思って使ってみても、
便利でも何でもない
スクリプトとかあったら人間が解析しないといけない
selenium使ってさえ、取得したpage_sourceがスクリプトの塊で、
謎に分割されてたり、jsonっぽいけどjsonじゃなかったり、
スクレイピング避けのいたちごっこが続いている
871デフォルトの名無しさん (ワッチョイ e738-NFcD)
2024/09/07(土) 19:18:50.68ID:zesuODdH0 デスクトップ上の座標でクリックしてけばいい
872デフォルトの名無しさん (ワッチョイ 87e6-n0L+)
2024/09/07(土) 21:26:28.97ID:o9ae9Qt50 seleniumでウェブの操作を行うプログラムを持っているのですが、おそらくグーグルchromeのアップデートが原因で動かなくなりました
実行後、何も処理せずに落ちてしまうのでエラー内容すら見られません
chromeのバージョンは128.0.6613.120
chromeドライバーのバージョンは128.0.6613.119の32bitです
ドライバーを旧バージョンから最新バージョンに上書きするだけではダメなんですかね?
実行後、何も処理せずに落ちてしまうのでエラー内容すら見られません
chromeのバージョンは128.0.6613.120
chromeドライバーのバージョンは128.0.6613.119の32bitです
ドライバーを旧バージョンから最新バージョンに上書きするだけではダメなんですかね?
873デフォルトの名無しさん (ワッチョイ 6754-DWku)
2024/09/07(土) 21:29:26.91ID:wncxx9TU0 実際に使ってるブラウザとseleniumのドライバを合わせないといけない
みたいな努力は割と前に不要になった
みたいな努力は割と前に不要になった
874デフォルトの名無しさん (ワッチョイ 87e6-n0L+)
2024/09/07(土) 22:06:17.62ID:o9ae9Qt50875デフォルトの名無しさん (ワッチョイ 6754-DWku)
2024/09/07(土) 22:08:24.32ID:wncxx9TU0 from selenium import webdriver
with webdriver.Chrome() as driver:
みたいに書く
with webdriver.Chrome() as driver:
みたいに書く
876デフォルトの名無しさん (ワッチョイ 87e6-n0L+)
2024/09/07(土) 22:22:51.02ID:o9ae9Qt50 >>875
その2行目を付け足したら速攻で落ちるようになりました…
webdriver.Chrome()の()の中に、
エラー画像の4行目のservice=ChromeServiceなんたらかんたらをいれるのかな?とよく分からないながらやってみても変わらず
その2行目を付け足したら速攻で落ちるようになりました…
webdriver.Chrome()の()の中に、
エラー画像の4行目のservice=ChromeServiceなんたらかんたらをいれるのかな?とよく分からないながらやってみても変わらず
877デフォルトの名無しさん (ワッチョイ 2701-C5B1)
2024/09/07(土) 22:28:17.17ID:2iOJWTB70878デフォルトの名無しさん (ワッチョイ 87e6-n0L+)
2024/09/07(土) 22:39:22.70ID:o9ae9Qt50879デフォルトの名無しさん (ワッチョイ e7d4-g3wY)
2024/09/07(土) 23:50:08.25ID:57KCZCA60 >>878
同じバージョンだけど動いてyahoo見れるな…
同じバージョンだけど動いてyahoo見れるな…
880デフォルトの名無しさん (オッペケ Srbd-bQm6)
2024/09/08(日) 03:12:08.34ID:5mVESwIRr >>879
マジですか…
数か月くらい動かしていない期間があって、久しぶりに昨日動かそうとしたらエラーが出て…
WinError 193の対処法として紹介されていた、
service = ChromeService(ChromeDriverManager().install())によって作成されるChrome Driverのキャッシュを消すというものも効果なし
それ以外のエラーはよく分からず
マジですか…
数か月くらい動かしていない期間があって、久しぶりに昨日動かそうとしたらエラーが出て…
WinError 193の対処法として紹介されていた、
service = ChromeService(ChromeDriverManager().install())によって作成されるChrome Driverのキャッシュを消すというものも効果なし
それ以外のエラーはよく分からず
881デフォルトの名無しさん (ワッチョイ f16a-OVBJ)
2024/09/08(日) 09:00:49.72ID:6sSIgrGd0 >>880
その記述って自動で適切なChromeDriverをダウンしてきてくれるみたいだけど、出てるエラーはChromeDriverと合ってないから実行できないよ、っていう事らしい。
自動で上手くいかずキャッシュを消してもダメなら自動を止めて、ChromeDriverの各バージョンを片っ端から手動でダウンして試してエラーの出ないchromedriver.exeをどこかのフォルダに置いといて直接指定すれば良いのでは?と思うけどそれじゃダメなの?
その記述って自動で適切なChromeDriverをダウンしてきてくれるみたいだけど、出てるエラーはChromeDriverと合ってないから実行できないよ、っていう事らしい。
自動で上手くいかずキャッシュを消してもダメなら自動を止めて、ChromeDriverの各バージョンを片っ端から手動でダウンして試してエラーの出ないchromedriver.exeをどこかのフォルダに置いといて直接指定すれば良いのでは?と思うけどそれじゃダメなの?
882デフォルトの名無しさん (ワッチョイ 7501-+J7s)
2024/09/08(日) 11:55:48.02ID:r0meOORq0 >>874
webdriver_managerのバージョンも最新に
webdriver_managerのバージョンも最新に
883デフォルトの名無しさん (ワッチョイ 8956-x2r9)
2024/09/08(日) 16:48:39.72ID:FaHdpY160 それね
俺も先月業務アプリが動かなくて困った記憶あるわ
結論から言うとwebdriver_managerはもういらない
selenium単独で自動的に最新のdriverを取得することができるみたい
```
from selenium import webdriver
options = webdriver.ChromeOptions()
'''オプションがあれば追加'''
options.add_argument('--start-maximized')
driver = webdriver.Chrome(options=options)
try:
driver.get("http://google.co.jp")
except Exception as e:
print(e)
finally:
driver.quit()
```
俺も先月業務アプリが動かなくて困った記憶あるわ
結論から言うとwebdriver_managerはもういらない
selenium単独で自動的に最新のdriverを取得することができるみたい
```
from selenium import webdriver
options = webdriver.ChromeOptions()
'''オプションがあれば追加'''
options.add_argument('--start-maximized')
driver = webdriver.Chrome(options=options)
try:
driver.get("http://google.co.jp")
except Exception as e:
print(e)
finally:
driver.quit()
```
884デフォルトの名無しさん (ワッチョイ 8956-x2r9)
2024/09/08(日) 16:55:04.68ID:FaHdpY160 ちなみにSeleniumバージョン4.6以上が必要らしいので注意ね
ここを参考にするといいよ
https://yuki.world/python-selenium-chromedriver-auto-update/
ここを参考にするといいよ
https://yuki.world/python-selenium-chromedriver-auto-update/
885デフォルトの名無しさん (ワッチョイ 911d-sF61)
2024/09/08(日) 18:21:21.76ID:ZvPXoPz+0 >>839
で色々とアドバイスもらった者です
サプーさんの書籍も購入したんだけど,ある程度、初心者を抜けるか抜けないかの人向けだね、これ
ほんとにプログラミングについては知識ゼロなので、動画以外でこの前段階の超入門書みたいなのでオススメあれば教えていただきたい
で色々とアドバイスもらった者です
サプーさんの書籍も購入したんだけど,ある程度、初心者を抜けるか抜けないかの人向けだね、これ
ほんとにプログラミングについては知識ゼロなので、動画以外でこの前段階の超入門書みたいなのでオススメあれば教えていただきたい
886デフォルトの名無しさん (ワッチョイ 4954-okkI)
2024/09/08(日) 18:31:43.56ID:zGDX69KT0 サプー動画の最初の方は、これ以上ないくらい初心者向けだろう
さすがに見てないので判り易いかどうかは知らない
さすがに見てないので判り易いかどうかは知らない
887デフォルトの名無しさん (ワッチョイ 911d-sF61)
2024/09/08(日) 18:36:54.21ID:ZvPXoPz+0888デフォルトの名無しさん (ワッチョイ 911d-sF61)
2024/09/08(日) 18:40:19.95ID:ZvPXoPz+0 プログラムはできるだけシンプルで、うまく動かなかったり不具合出た時に、他の人でも修正位置がわかりやすく、後から機能を追加しやすいフレキシブルなモノが良いってのはなんとなくわかるのよ…
まず、それを書く知識が全くと言っていいほどないんだよね🙃
まず、それを書く知識が全くと言っていいほどないんだよね🙃
889デフォルトの名無しさん (ワッチョイ 911d-sF61)
2024/09/08(日) 18:42:15.28ID:ZvPXoPz+0 なので、どの動画が自分の欲しい情報解説してあるモノなのかの判断もつかない状態です
890デフォルトの名無しさん (ワッチョイ 8aa5-f0zi)
2024/09/08(日) 18:45:56.99ID:nFVqfsuv0891デフォルトの名無しさん (ワッチョイ 911d-sF61)
2024/09/08(日) 18:47:04.49ID:ZvPXoPz+0 >>890
とりあえず組みたいプログラムに取り掛かれって事?
とりあえず組みたいプログラムに取り掛かれって事?
892デフォルトの名無しさん (ワッチョイ 4954-okkI)
2024/09/08(日) 18:47:11.49ID:zGDX69KT0893デフォルトの名無しさん (ワッチョイ 8aa5-f0zi)
2024/09/08(日) 18:47:19.73ID:nFVqfsuv0 書籍を書いているのはプロじゃないので、モジュールの切り出しすらも説明していない。
894デフォルトの名無しさん (ワッチョイ 8aa5-f0zi)
2024/09/08(日) 18:48:20.74ID:nFVqfsuv0 >>891
自分自身が使うものを作る。あとから変えようとしたときにこう作るんじゃなかったと気づく。
自分自身が使うものを作る。あとから変えようとしたときにこう作るんじゃなかったと気づく。
895デフォルトの名無しさん (ワッチョイ 8aa5-f0zi)
2024/09/08(日) 18:50:05.63ID:nFVqfsuv0 実務の意味がわからないというのは学生なのかな?
896デフォルトの名無しさん (ワッチョイ 911d-sF61)
2024/09/08(日) 18:50:58.16ID:ZvPXoPz+0 >>895
プログラミングの用語とかも知らんのです
プログラミングの用語とかも知らんのです
897デフォルトの名無しさん (ワッチョイ ed26-5gfH)
2024/09/08(日) 18:53:49.27ID:SEDRCJr/0 全くのプログラミング初心者なら
「プログラムはなぜ動くのか」
辺りかな
「プログラムはなぜ動くのか」
辺りかな
898デフォルトの名無しさん (ワッチョイ 911d-sF61)
2024/09/08(日) 18:57:59.46ID:ZvPXoPz+0899デフォルトの名無しさん (ワッチョイ 911d-sF61)
2024/09/08(日) 19:02:39.95ID:ZvPXoPz+0 >>893
なんか良い、こんなオレでも比較的理解できる良い書籍あります?
なんか良い、こんなオレでも比較的理解できる良い書籍あります?
900デフォルトの名無しさん (ワッチョイ f16a-OVBJ)
2024/09/08(日) 19:24:36.64ID:6sSIgrGd0901デフォルトの名無しさん (ワッチョイ 911d-sF61)
2024/09/08(日) 19:26:21.18ID:ZvPXoPz+0902デフォルトの名無しさん (ワッチョイ 911d-sF61)
2024/09/08(日) 19:30:52.42ID:ZvPXoPz+0 助言で具体的なものは全て書き出したり、登録、購入検討してる
ただ昨日の今日で、サプーさんの書籍も今目を通したとこなので、リストの優先順位を判断できてなくて
ただ昨日の今日で、サプーさんの書籍も今目を通したとこなので、リストの優先順位を判断できてなくて
903デフォルトの名無しさん (ワッチョイ c5e6-bQm6)
2024/09/08(日) 19:31:24.09ID:SLqL4HNM0904デフォルトの名無しさん (ワッチョイ 911d-sF61)
2024/09/08(日) 19:38:08.04ID:ZvPXoPz+0905デフォルトの名無しさん (ワッチョイ 4954-okkI)
2024/09/08(日) 22:39:01.10ID:zGDX69KT0 何か裏で処理させてて、完了したらポップアップで知らせたい
それだけなら方法はいくらでもあるけど、
よし判ったとEnter一発で閉じたい
でもポップアップにフォーカスが無いので、いろいろ面倒くさい
ポップアップの位置もど真ん中に出ると邪魔なので端に寄せたい
でも tkinter でどう頑張ってもそんなことできない
それだけなら方法はいくらでもあるけど、
よし判ったとEnter一発で閉じたい
でもポップアップにフォーカスが無いので、いろいろ面倒くさい
ポップアップの位置もど真ん中に出ると邪魔なので端に寄せたい
でも tkinter でどう頑張ってもそんなことできない
906デフォルトの名無しさん (ワッチョイ 8956-JApX)
2024/09/08(日) 23:07:02.96ID:FaHdpY160 ずっと画面見てる前提なら数秒したら消す処理すりゃいいんじゃない?
907デフォルトの名無しさん (ワッチョイ 4954-okkI)
2024/09/08(日) 23:08:52.84ID:zGDX69KT0 そんな前提は無い
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 「おこめ券は米以外の食品も買える。効果的な活用を」 地元で農水相 [山形県] [少考さん★]
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 今年の流行語大賞 『働いて働いて働いてまいります』が受賞で不快感… 過労自殺の遺族らが会見「家族にむち打つような行為だ」 [冬月記者★]
- 【東京】「家族で話題にして」 “世田谷一家殺害から25年 警視庁が呼びかけ [煮卵★]
- 【広島】ペルー女性の国保加入を誤って認め、福山市が医療費484万円を肩代わりするミス…入院して手術を受ける [ぐれ★]
