[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2ch.scのread.cgiへ]
Update time : 12/09 17:01 / Filesize : 93 KB / Number-of Response : 405
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Pythonのお勉強 Part66



1 名前:デフォルトの名無しさん mailto:sage [2021/11/12(金) 07:48:11.11 ID:vp8lzav70.net]
!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のソースコードを5ちゃんに直貼はインデントが崩壊するので、
  ↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Pythonオフィシャルサイト www.python.org/
◇まとめwiki ttp://python.rdy.jp/

●関連スレ● 自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その55
https://mevius.5ch.net/test/read.cgi/tech/1633070807/

〇前スレ〇
Pythonのお勉強 Part65
https://mevius.5ch.net/test/read.cgi/tech/1621749112/

次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured

263 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 09:49:40.77 ID:kOoI/dimd.net]
さすがに初期化してないのに0で返ってきたら違和感ありすぎる
その0どこのやつやねん

264 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 09:53:13.32 ID:jmLWjGmX0.net]
listを継承したsafelistでも作ってsafelist.get()すればいい

265 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 10:43:06.24 ID:cGPzHP040.net]
numpy.zeros(m, n) じゃダメなのか
sparsityによるけど

266 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 10:53:16.07 ID:kOoI/dimd.net]
なんていうか、出来るからといって
何でもやっていいわけではないよな…?

型宣言して型無視したり、変数名と全然違う振る舞いのコードもかけるけど
やっていいかどうかを現場で議論してるんだよな?

267 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 11:08:20.51 ID:+DQyoA+ZD.net]
>>248
「半分の人間は平均値以下」
この命題は偽だぞ
90,80,85,30
この4つの数値の平均は71.25
平均値以下は1つ

268 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 11:13:00.90 ID:+DQyoA+ZD.net]
中央値に意味が無いと言えるのは中央値と平均値の乖離が小さい場合くらいで、
そんな状況はほぼない
日本全体の平均年収が436万円であるのに対して、日本全体の年収の中央値は370万円
これの意味分かるか?

269 名前:デフォルトの名無しさん [2021/12/01(水) 11:49:03.99 ID:kM+Jjoc8M.net]
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw
クソチョンはウンコを食べる糞食人種w
朝鮮人はゲリ便をじゅるじゅると
うまそうに食うw

270 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 12:03:11.43 ID:Qw3lWQwKr.net]
>>259
Ruby氏は政治も語るのか
自分でRailsサーバー建ててそこでやってくれ

ここの本来の住人がやると、Djangoで作る

271 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 12:29:23.91 ID:Jc7L6V7f0.net]
統計は正しく使わないと意味のある結果を導き出せない
知らないで使えば無知だが
知ってて使わないのは詐欺だ



272 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 13:20:47.75 ID:kQMiQMSXa.net]
お前らほんとフワフワした話しかしねーのな

273 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 13:51:51.48 ID:UViZzx3L0.net]
バシッとお願いしやす

274 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 14:00:04.80 ID:kOoI/dimd.net]
Noneをゼロでキャッチするガイジは死ね

275 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 17:08:27.52 ID:cGPzHP040.net]
「意味がない」「正しい」
会社でこんな曖昧な表現使ってる人見たことないわ

276 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 17:48:31.00 ID:CUbfchye0.net]
>>263
DSPとかの飽和モードってそんなんだから
まぁ需要はあるんじゃね?

アセンブラ以外で実装した言語を見た事が無いから実装はされないと思うけど

277 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 18:05:55.99 ID:AaatEAJta.net]
配列はみ出してるのにそのまま処理続行されるとか悪夢でしか無い

278 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 20:10:29.91 ID:lzZen0h80.net]
世の中には3種類の人間がいる
数を数えられる人間と、数を数えられない人間だ

279 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 20:15:58.72 ID:pw8MGucb0.net]
モンティ・パイソンのスペイン宗教裁判
NOBODY expects the Spanish Inquisition!
Our chief weapon is surprise...surprise and fear.

単数で始めたのにandで繋げてしまって文法が破綻する、という部分が面白いのに、なかなか伝わらない

Our two weapons are fear and surprise...and ruthless efficiency.
言い直して複数形にしたけど、わざわざtwoを付けて3つ言うという部分はもはや惰性

280 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 20:22:16.08 ID:vhG+/afG0.net]
まったくわからない

281 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 22:31:02.94 ID:toM1ybPg0.net]
>>252
標準偏差→正規分布、の間違い?
結構統計や確率分布も勉強すると面白いよ。
積率母関数はラプラス変換で、特性関数はフーリエ変換とかね。



282 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 02:22:32.97 ID:hQPCDoBz0.net]
>>263
バカは書き込まないで

283 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 10:12:40.87 ID:ItDkB8ePd.net]
どうせJavaScriptでへんな自信付けてココに迷いこんだ口なだろうけどな

284 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 16:31:50.86 ID:MTUgHWqu0.net]
Pythonプログラマは年収が高いから魅力的なのかもな

285 名前:デフォルトの名無しさん [2021/12/02(木) 17:15:47.74 ID:OJ+Rt/5p0.net]
Pythonを使った機械学習の本を読んでいます。

仮想環境を使うことを強く推奨すると書いてあります。

いままで、AnacondaのPythonを使ってきましたが、仮想環境を一切使ってきませんでした。

今から、仮想環境を作ってそれを使っても何も問題はないですか?

286 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 17:23:53.03 ID:Z+Ui9JYG0.net]
ライブラリのバージョンやらで混乱するくらいなら、最初から専用環境作れということでしょ
そっちのがめんどくさいと思うけど、仕事なら仕方ない

287 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 17:29:59.68 ID:OJ+Rt/5p0.net]
>>286
ありがとうございます。
趣味でやっているだけなので、必要性が実感できません。
仮想環境を作るとしても結局、最新のライブラリを使っていくだけになるのは目に見えています。

288 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 18:42:51.17 ID:wokKeEK2a.net]
趣味なら自分で必要になってから考えたらいいんじゃね

289 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 18:48:50.53 ID:OJ+Rt/5p0.net]
>>288
そうすることにします。ありがとうございました。

290 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 19:45:26.75 ID:KxC58LYE0.net]
>>284
因果関係がおかしいんだけどな。
プログラミングスキル以外が高い人(たとえは科学技術スキルやデータサイエンススキル)が、参入障壁が低いpythonに群がってるだけであって、pythonだけできたって仕方ない。
OpenCV,TensorFlow,Pytorch,jax,scipy,sclkit-learn,numpy,pandasあたりが使える人が年収高いというだけで、
それはPythonだけできても使える話ではない。
RDBや数学、統計の知識が必要なのだから。

291 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 19:52:09.42 ID:Z+Ui9JYG0.net]
稼いでる人はGoを使ってる



292 名前:デフォルトの名無しさん mailto:sage [2021/12/03(金) 07:16:52.31 ID:9BdS8doY0.net]
マルチコアを活かしてくれないツールを高速化する為に、
複数を非同期で同時に走らせたい
ただ、無制限に subprocess.Popen すると負荷が100%に張り付いてやばいので、
同時起動数の上限を設定したい

で、まあpoll()がNoneかどうか見ながらsleepしながらで動くんだけど、
同じことをやりたいケースがちょこちょこあるので、自前ライブラリ化を考える
でも、そんなもんは既に誰か作ってるのでは? という気がするんだけど、どっかにある?

293 名前:デフォルトの名無しさん mailto:sage [2021/12/03(金) 08:38:51.44 ID:mlmp5wts0.net]
オーバーヘッドを気にしないなら
multiprocessing.pool.Poolで任意サイズのプロセスプールを作ってそこからPopenする
threadingにも用意して欲しいんだが, 残念ながら無い

あとFutureでよければThreadPoolExecutorもワーカー数を指定できる
こちらはスレッドベースだ

294 名前:デフォルトの名無しさん mailto:sage [2021/12/03(金) 09:23:02.26 ID:9BdS8doY0.net]
やっぱりそのへんになるよね

たすきに長すぎな感じで、そこまで高度なことをしたい訳でもない
IOがネックになるからそこで詰まらないように並列処理したら効率的になるだろう、という思想だけど、
もっと原始的な、4コアあるのに1コアしか使ってないじゃんというレベルで、ネックの場所が違う

295 名前:デフォルトの名無しさん mailto:sage [2021/12/03(金) 11:23:24.64 ID:7z17o3pC0.net]
GNU Parallelとか

296 名前:デフォルトの名無しさん mailto:sage [2021/12/03(金) 14:38:02.37 ID:gYFV44kc0.net]
ProcessPoolExecutor?

297 名前:デフォルトの名無しさん mailto:sage [2021/12/03(金) 16:07:39.39 ID:9BdS8doY0.net]
100個のファイルに処理1を実行して、次に処理2を実行して、という場合、
並列でやるとしても処理1が全て完了してから処理2に取り掛かった方が安全で、
それは割と簡単にできる

処理順の依存関係まで指定してえいやっと全部一気に渡すと、済んだ人はどんどん先に進める方式だと、
効率最大でやってる内容は魔法みたいになる

キューに入れてもいいタイミングはユーザが判断してね方式だと、そんな怖いことはやりたくない
このへんの技術はとっくに枯れてる訳でもなくて、pythonのバージョンが上がるにつれて
よりシンプルに書けるようになってるっぽいので、いちばんいけてる奴だけ使いたい

298 名前:デフォルトの名無しさん mailto:sage [2021/12/03(金) 16:50:15.61 ID:MOk0xQBVd.net]
>>297
よくわからんけど機械学習系のタスク管理ライブラリを当たってみるのがいいのでは

299 名前:デフォルトの名無しさん mailto:sage [2021/12/03(金) 16:52:43.40 ID:oOU/CY6L0.net]
>>297
>並列でやるとしても処理1が全て完了してから処理2に取り掛かった方が安全で、

なんで安全なの?
ファイル間に依存性があるのかな?

300 名前:デフォルトの名無しさん mailto:sage [2021/12/03(金) 19:20:43.02 ID:TcDlgZdP0.net]
使いこなせないから知らないけど
非同期処理ときたらasyncioじゃないの?

301 名前:デフォルトの名無しさん mailto:sage [2021/12/03(金) 20:06:27.61 ID:ilrP3hOYa.net]
管理面倒だからそいうのはcelery使ってるわ



302 名前:デフォルトの名無しさん mailto:sage [2021/12/03(金) 20:13:17.59 ID:d1yD6wdJM.net]
キューが空いたら依存関係見て依存してる処理が全部終わってる処理を検索してキューに入れるだけだろ
枯れてないとか意味わからん

303 名前:デフォルトの名無しさん mailto:sage [2021/12/03(金) 21:05:26.85 ID:9BdS8doY0.net]
依存関係はケースバイケースすぎて処理1と処理2が終わってないと処理3ができない、
みたいなのは
p3(p1(), p2())
みたいに引数の関係で書いて、それがうまい具合に遅延して評価されればいい
その時点で結構凄いことだけど、処理10まであって、
p10(p9(p8(p7(p6(p5(p4(p3(p2(p1(
って書くのかと思うと、それも嫌

そのへんは既に解決済みでもっとかっこよく書けるらしいけど、理解できてない

304 名前:デフォルトの名無しさん mailto:sage [2021/12/03(金) 21:31:34.82 ID:nYt0d+Tj0.net]
記述は依存している隣同士の関係だけでいいやん
それを動的に解釈していくか全展開するかはプログラムの中の話

305 名前:デフォルトの名無しさん mailto:sage [2021/12/04(土) 13:56:24.80 ID:OXNHy6KQ0.net]
デフォルトは自動で0になってて欲しい系の代表は defaultdict だな
pythonをperl化してしまう悪魔のモジュール
いわゆるautovivification
声に出して読みたいプログラミング用語

306 名前:デフォルトの名無しさん mailto:sage [2021/12/04(土) 14:43:09.92 ID:clmSwDt/0.net]
defaultdict()
引数なしで0はドキュメンテーション上ひどいけど
defaultdict(0)
callableじゃない引数ならcopy()する動作でもとは思う

307 名前:デフォルトの名無しさん [2021/12/05(日) 22:33:04.61 ID:69iYFx7F0.net]
東熱でデビューまだ?

308 名前:デフォルトの名無しさん mailto:sage [2021/12/05(日) 22:50:01.39 ID:gzedxBTO0.net]
tipsとか説明してる動画がいろいろあるけど、
どう考えても動画で見るよりも文字のサイトで見た方が効率いいな
アニメーションで説明するならまだしも、コード映して音声で説明するだけだし

309 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 09:58:30.45 ID:bmhBnFtY0.net]
その通り
でも見るより聞くほうが頭に入るっていう人はいる
そして動画なら普通は飛ばされるちょっとしたエラーへの対応なんかも映されてたりしていい
そういう意味じゃまぁまぁ分かってるぐらいのやつが試行錯誤しながらやってる動画が一番いいかもしれない動画なら
それと小技100選みたいなのは動画のほうがサクサク見れていいなって思った

310 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 10:16:07.53 ID:K9NwbhKq0.net]
動画はチュートリアル向きだね

311 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 10:24:06.22 ID:r+k7u56QM.net]
仮に多少わかりやすかったとしても時間効率が悪すぎる



312 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 10:25:23.41 ID:KAUrNTmh0.net]
ん、今のとこ理解が追いついてない
と一時停止するのはまだいいとしても、
そこはもう判ったからくどく言わなくていい、
という部分だけ早送りするのは困難

313 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 13:10:34.16 ID:Fv6sj5de0.net]
いわゆる
教育サイトのヤツって制限つよいから使えんな
YouTubeのが倍速できていい

314 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 13:35:16.73 ID:bFLz1Hfed.net]
Udemyは倍速できた
開講者によって違うのかもしれんけど

315 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 15:04:28.27 ID:V3VnXKsr0.net]
python始めたての頃、日本語でpythonを解説してる動画があったんで見てみたけど、
内容の良し悪し以前にタイプ音が耳障りすぎて見てられなかったな
カチャカチャ…ッターン!!ってまんま昔のミサワの画像みたいな

316 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 17:57:42.22 ID:fIaDMlsG0.net]
こういうプログラム組みたい、みたいなのはここでもいいのですか?

317 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 18:55:42.20 ID:K9NwbhKq0.net]
Pythonが主題ならいいよ

318 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 19:03:22.19 ID:fIaDMlsG0.net]
python **.sy ディレクトリ1 ディレクトリ2

としてコマンドライン引数2個を使い
ディレクトリ1から特定条件のファイル・ファイルサイズを抽出し
外部プログラムを利用して処理しディレクトリ2の場所にファイル名でフォルダを新規作成しそこにアウトプットしたいのですが

これは難しいですか?
半日かけて色々こねくり回してもファイルを抽出するところまでしかできませんでした

319 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 19:11:53.57 ID:4dOWqmq10.net]
いいよ

320 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 19:14:31.95 ID:KAUrNTmh0.net]
どうせなら入力用と出力用は順不同でいけるように、-i -o オプションとか付けよう

321 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 19:16:54.93 ID:YFGCwo230.net]
Pythonを先週から使っててORMのdatasetを試してみてるんですけど、
find()に WHERE `hoge` > 10 相当の条件って指定できるんですか?



322 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 19:40:42.62 ID:+xtv5Wsa0.net]
>>321
https://dataset.readthedocs.io/en/latest/queries.html
公式サイトみてる?
非公式のまとめサイトはあくまで公式サイトを補完するもの

323 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 20:13:19.50 ID:YFGCwo230.net]
>>322

やさしいのぅ。有難うございます。

324 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 21:04:00.66 ID:AXyP6TkQa.net]
シンプルなORMないかなーって色々触ってみるけどあれこれ機能が足りず結局SQLAlchemyになっちゃうよな

325 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 21:10:58.44 ID:JyBQF4AA0.net]
>>318
難しくない。shutilかな。

326 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 21:33:56.87 ID:fIaDMlsG0.net]
>>325
できればヒントやサンプルをいただけませんか

327 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 21:42:01.16 ID:K9NwbhKq0.net]
ヒント : subprocess

328 名前:デフォルトの名無しさん [2021/12/06(月) 22:13:57.72 ID:rLSBlzT30.net]
>>326
やろうとしてることを段階的に分けて書いてみて

329 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 22:22:51.24 ID:fIaDMlsG0.net]
>>328
1.ファイルの入ったフォルダをコマンドライン引数1に設定する

2.フォルダ内から特定の拡張子かつ一定以上のファイルサイズのものを抽出する

3.抽出したファイルを外部ツールにかける

4.外部ツールにかけた結果をコマンドライン2引数のディレクトリ内に展開する

5.フォルダは4の指定ディレクトリ内にファイル名で新規作成する

こんな感じです
for + os.walkとendswithでファイル一覧を抽出できてもその抽出したファイルをその先に持って行ったり
外部ツール利用の方法が全くわかりません

330 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 23:02:13.62 ID:KAUrNTmh0.net]
streamlinkはpythonで書かれてるのに、
pythonからの使い方が判らないので、subprocessでpython呼び出してる

331 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 23:06:57.52 ID:+xtv5Wsa0.net]
Pythonでやるからややこしい
1,2はfind
3,4,5はxargs + sh(cd, mkdir)
でできる内容

Pythonでやるのがお題ならごめん



332 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 23:16:45.17 ID:fIaDMlsG0.net]
>>331
バッチでってことですか?
FFMPEGがワイルドカード対応してなくて無理でした

333 名前:デフォルトの名無しさん [2021/12/06(月) 23:24:01.09 ID:uKiaXwwm0.net]
シェルの方が早そうだね

334 名前:デフォルトの名無しさん [2021/12/06(月) 23:29:51.84 ID:rLSBlzT30.net]
>>329
>1.ファイルの入ったフォルダをコマンドライン引数1に設定する
>2.フォルダ内から特定の拡張子かつ一定以上のファイルサイズのものを抽出する
>5.フォルダは4の指定ディレクトリ内にファイル名で新規作成する
2と5の間はとりあえずスキップして、ここだけの実装は可能?

335 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 23:31:26.15 ID:fIaDMlsG0.net]
>>334
2の途中で詰まりました
抽出したファイルの扱い方がわからなく・・・

336 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 23:49:14.76 ID:R0qeSVmL0.net]
配列に入れればいいだけじゃね

337 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 00:14:41.57 ID:ebSZa7bB0.net]
>>332
バッチてことはWin環境なんかな
Pythonで解決した後でもいいからPowerShellもしらべてみて
習得にあるていど時間かかるけどやれることが広がるよ
あとワイルドカード展開するのはコマンドじゃなくて通常はシェルの仕事

338 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 00:34:04.97 ID:P3Md4odo0.net]
すみませんバッチファイルの本を買って勉強します
ありがとうございました

339 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 00:59:42.03 ID:O2KWEQqW0.net]
実際問題として、PS使うならPythonで書こうとするかなぁ
他のOSでも使うことができるし

とりあえずバッチとwshは使いたくない

340 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 01:31:43.51 ID:q8J3SSC40.net]
find -execかfind xargsが鉄板だと思うけど
外部コマンドのstdout/stderr出力をPython側でキャプチャする必要なければそんなにややこしくもない

for path in Path(search_dir).glob(pattern):
__if path.stat().st_size > 1000:
____dir_path = Path(output_dir).joinpath(path.stem)
____dir_path.mkdir()
____new_path = dir_path.joinpath(path.name)
____os.system(f'echo "{path}, {dir_path}" > "{new_path}"')

(同じファイル名があった場合の対処はしてない)

341 名前:デフォルトの名無しさん mailto:age [2021/12/07(火) 01:36:39.28 ID:MjkMHobt0.net]
winでもwsl2で >331が書いてる手順でヤレる
powershellも覚えれば便利なんだろうけど…



342 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 06:51:56.92 ID:BLeYwod+0.net]
>>329
2.は os.listdirすればリストで返してくれる
この辺見てみた?
https://note.nkmk.me/python-os-path-getsize/

343 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 07:18:25.74 ID:Jl0mhXXA0.net]
使うのがffmpegの場合、他にも考えるべきことが大量にあるので、
一括ではうまく行かないんだよな

何が来ても自分好みのファイルに変換する万能スクリプトを一つ書いて、
それに処理するファイル一覧を食わせる方式に落ち着いた

344 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 08:57:52.26 ID:BFhf39Z30.net]
awk,sedが必要になったらシェルスクリプトを諦めて全部Pythonで書くかな。
あれらを今から学習する気力が湧かない。

345 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 09:05:21.33 ID:Jl0mhXXA0.net]
PSはPSでしかできないパワフルなことがあるので、
その部分だけPSでやるのがいい
windowsの底の部分を簡単にいじれるのはPSだけ

346 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 10:45:42.99 ID:F2U4yKHS0.net]
質問するならコード貼ってほしいな
このスレのテンプレにpaste用サイトが書いてある

347 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 11:08:12.05 ID:A/pvwvVNr.net]
PSはlinuxでもosxでも動くし、あれだけで出来ること結構あるから知ってると便利だよな

348 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 11:49:17.79 ID:G7aiaFNj0.net]
ガチでヌーブなんですけどrequestsとbeautifulsoupでスクレイピングやってます
waitかけないとバンされるよと言われましたがどうすればいいですか?
requests.get()でtimeoutは今書きましたがforで同じサイトの似たようなページに何度もアクセスするのでサーバーへの負荷はすごいと思います
これに対してどうすればいいですか?

349 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 12:01:37.39 ID:Jl0mhXXA0.net]
適度にsleepする

350 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 12:17:07.83 ID:yRaAbrIt0.net]
手動でブラウザ操作したときまんまsleepしたらいいだけ
サーバ構築する側はボットなんか勘定にいれてコスト設計してないんだから

351 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 12:22:57.09 ID:P3Md4odo0.net]
>>342
for curDir, dirs, files in os.walk(sys.argv[1]):
for file in files:
if file.endswith("〇〇"):
os.path.getsize(ts)
print(os.path.join(file))

これでファイルは取得できるのですがそのファイルを参照する方法がわからず・・・



352 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 12:24:12.30 ID:P3Md4odo0.net]
こうでした

for curDir, dirs, files in os.walk(sys.argv[1]):
for file in files:
if file.endswith(".〇〇"):
print(os.path.join(file))

353 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 13:08:03.12 ID:F2U4yKHS0.net]
並列数1なら大したことないけどね
応答時間200ミリ秒なら、毎秒最大5リクエストだし

354 名前:デフォルトの名無しさん [2021/12/07(火) 13:09:23.97 ID:A/pvwvVNr.net]
参照って何をしたいのか知らないけど、ファイル名取得出来てるんだからオープンするのも他のコマンドの引数に与えるのも可能では

355 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 13:32:14.96 ID:lMfMxSoR0.net]
>>352
Ruby では、glob に拡張子も指定できる

# 絶対パスのディレクトリ名の後ろに、*.txt を付ける。
# . で始まる、隠し directory, file を除く
glob_pattern = "C:/Users/Owner/Documents/**/*.txt"

separator = "-" * 30 + "\n"

Dir.glob( glob_pattern )
.select { |full_path| File.file?( full_path ) } # ファイルのみ
.each do |full_path|
puts "#{ separator }#{ full_path }\n#{ separator }" + File.read( full_path )
end

356 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 14:32:51.33 ID:Jl0mhXXA0.net]
できないglobなんか無いだろ

from pathlib import Path
p = Path("c:/path")
for filename in p.glob("*.mp4"):
print(filename)

357 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 15:09:33.84 ID:NCVMykAH0.net]
つかglobを何だと思ってんだガイジは

358 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 15:23:50.74 ID:F2U4yKHS0.net]
スレタイ読めない人がいるな

359 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 21:21:55.14 ID:3sCD52Waa.net]
オワコンのruby薦められても困る

360 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 21:40:58.38 ID:Jl0mhXXA0.net]
rubyとperlとVBとobjective-Cの人は、脱出するのが早いほど幸せになれる

361 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 21:43:22.87 ID:P3Md4odo0.net]
すんげえ苦労したけどなんとか形になりました
バッチなのですれ違いすみません
もっと勉強して最適化していきます
わかってしまえばすごくシンプル

set Tool="Tool"
set template="template"

for %%f in (%1\*.〇〇) do (
mkdir "%2\%%~nf"
%Tool% -i %%f -o "%2\%%~nf\%%~nf.dgi" -a -e
del "%2\%%~nf\%%~nf.log
)



362 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 22:06:22.51 ID:zHaA7V/Y0.net]
ワロタw

363 名前:デフォルトの名無しさん [2021/12/07(火) 22:58:20.49 ID:I8679kEJ0.net]
嘘だろ

364 名前:デフォルトの名無しさん [2021/12/07(火) 23:00:21.81 ID:oV2OkogX0.net]
クソワロタ

365 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 23:12:35.70 ID:7GhYBix30.net]
templateって何?

366 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 23:44:21.65 ID:F2U4yKHS0.net]
ポテンシャルを感じる

367 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 01:37:02.26 .net]
from datetime import datetime, timedelta
import pytz
dt=datetime.now(pytz.timezone("Asia/Tokyo"))
print(dt)
print(dt.today())# timezone変更 不適用
print(dt.time())# timezone変更 適用
dt_utc=dt.astimezone(pytz.timezone("UTC"))
print(dt_utc)
print(dt_utc.today())#
print(dt_utc.time())#

#2021-12-08 01:34:40.591170+09:00
#2021-12-07 16:34:40.592894
#01:34:40.591170

#2021-12-07 16:34:40.591170+00:00
#2021-12-07 16:34:40.598068
#16:34:40.591170


.today()てtimezone変更引き継いで?くれないんですね・・

368 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 02:08:39.64 ID:uCheTDCk0.net]
Pythonで組みなおしています
デフォルト関数も多そうだし条件分岐とかが簡単そうですが
外部ツール起動に対するオプション調査中です
ファイル名を取得してその名前でディレクトリを作成するところまではできました

import sys
import os
import subprocess

for i in os.listdir(sys.argv[1]):
file, ext = os.path.splitext(i)
os.mkdir(sys.argv[2]+file)

369 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 07:20:30.37 ID:OmzTkGs60.net]
>>367
参考になるかも
https://qiita.com/shota243/items/91660ece72b5e84c3adb

370 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 13:19:52.67 ID:uCheTDCk0.net]
外部ツールに抽出ファイルをかけるのが難しいですね

%Tool% -i %%f -o "%2\%%~nf\%%~nf.〇〇〇" -a -e
この処理をPythonでどうやるのか?
subprocess.runあたりを使うっぽいのですがその後の書き方や処理方法が不透明
ターミナルにパイプして処理する?とかになるなら結局バッチかパワーシェルで
統一した方が早いのでしょうか

371 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 13:33:21.38 ID:5HATgl/c0.net]
標準出力を取得して、とかやるとそれ用のことを書かないといけないけど、
実行させるだけなら超シンプル

subprocessから取得したデータをパイプでffmpegに渡して、
とかやらせてちゃんと動くとちょっと嬉しい



372 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 13:43:19.97 ID:lsXABI8+d.net]
ニコ生のえっちなやつ録画したいニキおつ

373 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 15:21:18.60 ID:M4uEosNe0.net]
>>370
バッチで用が済むなら終わりでいいのでは
汚いスクリプトなんてプログラミングの勉強にならないし

374 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 16:12:58.05 ID:5HATgl/c0.net]
m = re.search('pattern', str)
if m:
  item = m.group(1)

みたいには書けるけど、ifの中にmの取得を一緒に書けない?
そうでないと、if elif elseで書けない

375 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 16:16:26.00 ID:Z7ccVyDn0.net]
昔のpythonでは書けなかったんですが
python3.8からassignment expression := ができるようになりました

376 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 16:22:47.75 ID:5HATgl/c0.net]
おおー、できるのか
でもうちのは3.7だからできないわ
会社のは3.6だからもっとできない

変な互換性のなさを作り込むよりは、3.6でもやれる方法を考えよう

377 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 16:31:06.57 ID:cmZgcxZR0.net]
>>370
各変数を別途取得して、subprocess.runで起動するアプリの引数として与えるだけ
自分で引数をオプションとして与えたいなら、argparseを使う

378 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 16:31:50.71 ID:lsXABI8+d.net]
item = data.get(1)
if item:
id(item)

#3.8
if item:= data.get(1):
id(item)

379 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 16:51:20.77 ID:e5XneN8e0.net]
pythonの野郎宗旨替えしやがったのか

380 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 17:00:08.30 ID:cmZgcxZR0.net]
>>374
スコープの話なら、関数こさえてreturnで拾うという手もあるけど、めんどくさいね

381 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 17:02:23.43 ID:5HATgl/c0.net]
無駄な処理は増えるけど
m1 = re.〜
m2 = re.〜
としておいてから、
if m1:
elif m2:
なら書ける

代入が評価もできる仕組みは、書き間違えてバグるからというよりは、
単純に読みにくくなる



382 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 17:12:25.01 ID:+2BbFlMUa.net]
Pythonのifのスコープは脳に優しくないな

383 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 17:22:50.60 ID:aaXV5Kk80.net]
プライベートだと思っていた彼女のホールがグローバルだった

384 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 19:30:48.14 ID:5HATgl/c0.net]
入力行をsplitして取り込む
arg1, arg2, arg3 = line.split('\t')
みたいな感じ

でも、入力がちゃんとしてなくて数が多くても少なくてもエラーになる
そこはよしなにやって欲しい
足りない部分はNoneで埋めて、余った分は捨てていい

というええかげんなことをしようと思ったら、ええかげん関数を作るしかないのかな

385 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 19:35:03.01 ID:lsXABI8+d.net]
hash = {'ぐれ':1, 'ぷ':2}

matched = m.group(1)

if not hash.get(matched):
print('i want to write else case')
elif hash[matched]== 1:
print('do 1 case')


???

386 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 21:14:52.99 ID:/jR8/f4s0.net]
>>384
arg1, arg2, arg3, *_ = line.split('¥t') + [None, None]

387 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 23:31:45.91 ID:5HATgl/c0.net]
+ でいいんだな

388 名前:デフォルトの名無しさん [2021/12/09(木) 02:15:13.68 ID:WjLFVkiy0.net]
すみません、質問なのですが、
newline= ってpython3じゃないと使えないのですか?

389 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 02:26:38.04 ID:y+vTbIG00.net]
調べてから質問してる?

390 名前:デフォルトの名無しさん [2021/12/09(木) 02:29:06.32 ID:WjLFVkiy0.net]
してる

391 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 05:36:26.42 .net]
"newline= を使う"ってなに?
文字列の中に改行コードは使えるか
って意味じゃないよね
それだとそっこーぐぐったら出てくるし。
なんかのライブラリやらフレームワーク的な話なのだろうか



392 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 05:39:43.24 .net]
あるいはクロスプラットフォームでのCRLFかLFかみたいな話かな

393 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 06:51:10.51 ID:7v43kIFS0.net]
openのオプションでしょ

394 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 08:02:22.78 ID:I94H5Ioy.net]
>>388
python3.8.1
https://techiedelight.com/compiler/?MQK2

python2.7.17
https://techiedelight.com/compiler/?lKam

395 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 08:48:12.08 ID:zIpIn5ri0.net]
beautifulsoupでattributeerror: nonetype nas no attribute stringが発生するんだけどnoneになることが想定される場合は一々いっこっこifでかこってやらないとだめなの?

396 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 08:56:56.15 ID:zIpIn5ri0.net]
ifっていうかtryか

397 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 08:59:10.31 ID:7v43kIFS0.net]
最大限何でも見つかるようにしとくから、緩めるのはユーザ側でやってね
という姿勢は間違ってないんだけどな
元から緩かったら厳しくしようがない

398 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 09:52:10.18 ID:q+Lg0FmZ0.net]
自分の管理できないデータを拾おうとする場合は
例外処理は必須だと思う

399 名前:デフォルトの名無しさん [2021/12/09(木) 10:42:48.76 ID:WjLFVkiy0.net]
>>394
ありがとうございます!!!

400 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 11:32:41.22 ID:LJEXrIakM.net]
>>395
ifかor

Pythonにはsafe navigation operatorがないからスクレイピングコードは煩雑になりがち
https://en.wikipedia.org/wiki/Safe_navigation_operator

要素がなければ空文字のようなデフォルト値を返す汎用的関数を自分で用意すると少し読みやすくなる

401 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 11:51:24.51 ID:q+Lg0FmZ0.net]
JSONなんかだと、get()で拾えばまぁ困らんな



402 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 11:58:39.98 ID:LJEXrIakM.net]
BeautifulSoupじゃなくてScrapyなら少しマシ
公式ドキュメントの質は段違い

403 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 12:37:45.04 ID:LJEXrIakM.net]
>>401
指定した要素がない状況を考慮する必要があれば階層ごとに自分でハンドリングが必要だからgetだけじゃダメなんだよね

safe navigation operatorがあればlodashのgetやrubyのdigのようなのが簡単に作れる

近いところでglomがあるけど処理を分割したり、つなげたりできないから使い勝手が悪い

404 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 14:43:48.67 ID:kmW2UpC80.net]
bsのドキュメントってなんであんな書き方なんかな






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<93KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef