Pythonのお勉強 Part69

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ c733-stRS)
垢版 |
2022/11/24(木) 21:39:44.67ID:A6xfpKBe0
!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://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Pythonオフィシャルサイト http://www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki ttp://python.rdy.jp/

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

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

次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
### END of TEMPLATE ### ?
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2023/01/07(土) 12:07:18.18ID:UFnoM8jpd
sleepってその間メッセージの処理できるの?
482デフォルトの名無しさん (ブーイモ MM4b-mEot)
垢版 |
2023/01/07(土) 12:12:22.31ID:VzD178C+M
sleepしたスレッドは他の処理はできないけど
他のスレッド・プロセスは関係ない
2023/01/07(土) 12:54:52.65ID:QtB2nOqPM
sleep(1)を300回回して終了フラグチェックとかにしても良い
484デフォルトの名無しさん (ワッチョイ e197-Kn2b)
垢版 |
2023/01/07(土) 18:13:33.04ID:Ht7NUaQk0
>>468
5分おきと言わず、ファイルシステム変更イベントを受け取るイベントドリブンにした方がいいと思う
OSによって必要なコマンドやAPIは違うと思うけど
485デフォルトの名無しさん (ブーイモ MMab-JgFh)
垢版 |
2023/01/07(土) 18:19:06.23ID:5L5/eVw7M
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
2023/01/07(土) 18:22:53.32ID:+xj7TcwR0
Windows限定でいいなら、.netのAPI
FileSystemWatcherが使えると思う
487デフォルトの名無しさん (ブーイモ MM4b-mEot)
垢版 |
2023/01/07(土) 21:31:02.61ID:J6NwEuodM
>>473が書いてるwatchdogが定番ツールで
OSごとの差異を吸収してくれるよ

Linuxならinotify
WindowsならReadDirectoryChangesW(FileSystemWatcherがラップしてるWin32API)
macOSならFSEvent
2023/01/07(土) 21:42:10.72ID:11syE16N0
watchdogと言われると、モニタするんじゃなくて、止まってたらリセットするイメージが強いけど
489デフォルトの名無しさん (ワッチョイ 112c-aLII)
垢版 |
2023/01/08(日) 00:08:32.18ID:GLDV6Cyi0
常駐フォルダ監視、なにかあったらどうにかする
処理はもう脳死でwatchdog一択というくらい定番
2023/01/08(日) 00:17:02.60ID:PbsTDkd50
どう実装してもいいけど
増えて消えたとかの一瞬も捉えたいならイベントドリブンで監視する必要がある
2023/01/08(日) 00:33:09.12ID:QuJ5Wt8K0
>>480
> ループの中に微小なsleepを入れておくと、そのタイミングでOSがタスク切り替えできるので、
いつの時代の人なんだよw
他のアプリに影響したくないなら優先度下げろよ...
2023/01/08(日) 00:34:59.79ID:QuJ5Wt8K0
>>488
組込屋さんかな?
2023/01/08(日) 01:19:18.86ID:nr72jIvE0
watchdogなんて便利なのあるのか・・・
2023/01/08(日) 04:46:18.93ID:mDwtjJAva
5分sleep すると、プロセスを殺せない・生き続けるから、
その分だけ、メモリなどのリソースが使えなくなるので損

cron みたいに、その時だけ起動して、
処理が終わったら、プロセスを終了するのが良い

それかRuby on Rails, npm/yarn などのagile 開発でよく使う、webpack-dev-server みたいに、
フォルダをwatch して、ファイルが変更されたら、rebuild するとか
2023/01/08(日) 13:39:55.68ID:LG3PUlqC0
>>491
優先順位下げるとしても無限ループにsleepを入れない実装は時代とは無関係かな
2023/01/08(日) 13:50:26.68ID:QuJ5Wt8K0
>>495
何のために入れる必要あるのか説明してみ
2023/01/08(日) 14:06:13.97ID:oudk2sNr
インスタンスメソッドをインスタンスメソッドの中で定義したいんだけどみんなどうやってるの
AIに聞いたらこんな感じだったけど

class Hoge:
 def __init__(self):
  self.new_method=None
 def hoge1(self):
  def _method():
   print("hoge method1")
  setattr(self,"new_method",_method)
 def hoge2(self):
  def _method():
   print("hoge method2")
  setattr(self,"new_method",_method)

h=Hoge()

h.hoge1()
h.new_method()

h.hoge2()
h.new_method()
2023/01/08(日) 14:13:05.44ID:ZWf/GgJ8d
VBで言うループ内のDoEvents()だよ
OSのメッセージへの応答が止まり続けると応答なしになる
だからメッセージに応答させるためにsleepを入れる
CPUの優先度を上げ下げしようがメッセージへの応答は各アプリケーションに依存する
だからループの時間が長くなればどのみちメッセージの処理ができず応答なしになる
2023/01/08(日) 14:16:48.76ID:LG3PUlqC0
>>496
何が言いたいのか知らんけど、CPU張り付きによるキーボード等の割り込みが阻害されるためだろう
古いとか言われて短い無限ループにsleep入れないプログラマいたら驚くかな
一人でプログラミングしてるならまだしも、第三者が使う可能性がある状況でその実装は恐い
2023/01/08(日) 14:35:43.73ID:QuJ5Wt8K0
>>498
メッセージループの話はまた別の話

>>499
プリエンプティブマルチタスク でググってこいよ...
未だにこんなロートルがいることに驚くわ
2023/01/08(日) 14:48:33.70ID:zCdq2/Tv0
1C/1TなCPUの時代に生きているのだろう
2023/01/08(日) 15:25:04.09ID:Aip5FLUqd
>>500
優先度変更でメッセージループをどうにかできるの?
2023/01/08(日) 15:41:35.19ID:QuJ5Wt8K0
>>502
メッセージループをどうにかできるなんて書いてないんだけど、頭大丈夫?
2023/01/08(日) 15:43:30.25ID:jwImvjcq0
>>501-502
見当外れだしsleepのひとも含め連休は大量ですね
2023/01/08(日) 15:47:25.43ID:NFnoEEjj0
実際問題として、処理奪われて操作に支障が出るソフトは普通にある
win10ではそういう問題はOSでは解決できない
2023/01/08(日) 15:47:46.10ID:1vx7bEHHM
どれだけググってもビジュアルスタジオにtweepyインストールできなくて
だれかおしえろください

ターミナルでpip打ち込むと認識されないとエラーで弾かれる
2023/01/08(日) 15:54:10.06ID:kQpMGlzxd
>>503
なら優先度だけあげても他の対策がいることになるだろ?
解決しないじゃん
2023/01/08(日) 15:56:00.30ID:hARfQwsA0
今時の他コア高性能CPUであれば100%張り付きで懸念するべきのはバッテリー残量と発熱くらいで、
一瞬でも100%未満になるコアが1つあればOSのタスクスイッチングには影響はほとんどないよ
GetMessage,PeekMessage,DispatchMessageをブロックしないことだけ気をつければ、あとは思う存分CPUをぶん回してもいいよ
100.00%まできっちり回せ
2023/01/08(日) 15:57:22.58ID:PbsTDkd50
>>506
pip3
2023/01/08(日) 15:59:45.54ID:QuJ5Wt8K0
>>505
それはそのソフトのつくりがタコなだけ

>>507
VBのDoEventの話なんてしてないから他所でやってくれ
2023/01/08(日) 16:01:44.72ID:kQpMGlzxd
>>503
>>491
優先度でメッセージループをどうにもできない以上、他のアプリに出る影響は排除できないじゃん
影響出したくないからループ中にsleepって話の中で優先度変えろって話出したの誰だよw
2023/01/08(日) 16:05:00.60ID:piRgm1WA0
つまり多コアCPUであっても、各プロセスは一つだけしか使ってはいけない
2023/01/08(日) 16:05:59.38ID:kQpMGlzxd
>>510
タコなソフトにならない解決策の話なのに優先度なんて頓珍漢なこと言い続けてる自覚ねーのな
DoEvents()も書けない、コピペすらできないみたいだし、
何のためのsleepか説明されても理解できそうにないな
2023/01/08(日) 16:10:11.55ID:96z64ttd0
ここをこうしたら、こういう時にこうなるよ
って話をしないと、伝わらないと思います
2023/01/08(日) 16:11:53.62ID:piRgm1WA0
伝えるというよりからかっているのだろう
2023/01/08(日) 16:14:15.67ID:NFnoEEjj0
ID:QuJ5Wt8K0 で抽出すると、ほんの一言二言書いて反応をうかがってるだけなんだよな
多分何も判ってなくて、総叩き状態を楽しんでる
517デフォルトの名無しさん (ワッチョイ 1176-1Rsz)
垢版 |
2023/01/08(日) 16:49:42.13ID:+2bxRzY60
>>497
インスタンスメソッドの中でインスタンスメソッドを定義したとして、使う側はどうしたいんだよ

h.hoge() を読んだら h.new_method() を使えるようになる仕様でいいのか?
2023/01/08(日) 17:48:05.51ID:Ghk4Hd5x0
DoEvents、自アプリのメッセージを1つ実行する
sleep、CPUリソースを一時的に返却する(自アプリのメッセージは処理できない)

sleepしたところで自アプリのメッセージを処理しないと自アプリは固まってしまう
2023/01/08(日) 18:07:15.82ID:QuJ5Wt8K0
>>511
メッセージループを処理するスレッド(たいていメインスレッド)と >>480 が言うような重い処理のスレッド(ワーカースレッド)を分ければいいだけ
ってかまともなGUIアプリなら半ば常識だぞ
当たり前だけどワーカースレッドにsleepなんて要らん

>>513
> 何のためのsleepか説明されても理解できそうにないな
そう言うのは説明してから言わないとね

>>516
> 多分何も判ってなくて、総叩き状態を楽しんでる
分かってないのはお前な
ちゃんと プリエンプティブマルチタスク でググれって書いてあるだろ?
ググっても理解出来なかったのか?w
2023/01/08(日) 18:11:48.35ID:QuJ5Wt8K0
>>518
DoEventsなんて言ってる奴はVBAあたりしか使えないんだと思う
DoEventsとsleepの違いすら理解できてないんだろうな
2023/01/08(日) 18:13:12.88ID:piRgm1WA0
ググれと言わずに、ここで簡潔に説明することが求められています
そんなに難しいことじゃないでしょうに
2023/01/08(日) 18:22:37.54ID:2bjH6Dg5d
>>519
優先度の話はどこがどう関係してくるの?
2023/01/08(日) 19:23:01.26ID:QuJ5Wt8K0
>>521
難しくないならあんたが説明してもいいんだよ?w

>>522
話の流れも読めないのか?
>>491 > 他のアプリに影響したくないなら優先度下げろよ...
2023/01/08(日) 19:28:01.59ID:piRgm1WA0
オレは説明を聞きたいと思っている
2023/01/08(日) 19:30:28.58ID:NFnoEEjj0
ソフトのつくりがタコとか書いちゃった時点でもう詰んでるんだよ
どう言い繕っても無駄なので諦めてID変わるのを待ってろ
2023/01/08(日) 19:53:03.23ID:QuJ5Wt8K0
>>524
だから プリエンプティブマルチタスク でググればいいだろ
まああんたはわかってるだろうけど簡単に言えばタスクの切り替えはタイマーでやってるからsleepなんか入れなくてもタスクは切り替わる

> ループの中に微小なsleepを入れておくと、そのタイミングでOSがタスク切り替えできるので、
なんて言うのはWindows 3.1とかMac OS 9時代のノウハウや

>>525
タコ乙w
2023/01/08(日) 20:28:28.98ID:NFnoEEjj0
現にwin10でも上手く行っとらんだろ
事実から目を反らすなよw
2023/01/08(日) 21:06:12.49ID:oudk2sNr
>>517
例えば犬の基本情報を取得したい時に
Symbols={"INU":{"symbol":"犬","voice":"ワン"}}
print(Symbols["INU"])
じゃなくて
print(Symbols.INU)
みたいな参照の仕方がしたかった
かつ返ってくるのはインスタンス、みたいな

クラスをインスタンス化するときってSymbols()でカッコついちゃうのでそれ無くしたいというか・・
なので単純に
https://ideone.com/QQs1cM
てやってみたけどinu_action,neko_actionのとこが見た目がしっくりこなくて
あれから調べてみたらやりたいのは内部クラスだったかもしれないのでそれで書いてみたら
https://ideone.com/E7c3gz
こうなって、しっくりきたものの使い方合ってるのかがわからない
2023/01/08(日) 21:15:22.42ID:Ghk4Hd5x0
>>526
Windows3.1はシングルタスクだよね
sleepしても他アプリに処理が移らなそう
処理時間が無駄に長引くだけ

昔過ぎて分からない
間違ってるかも
2023/01/08(日) 21:23:02.60ID:QuJ5Wt8K0
>>527
具体的に上手くいってないと言うソフト名出してみ
2023/01/08(日) 21:27:28.97ID:QuJ5Wt8K0
>>529
Windows 3.1 は協調型マルチタスク(=ノンプリエンティティブマルチタスク)
てかマジでググれ
https://www.sophia-it.com/content/%E5%8D%94%E8%AA%BF%E7%9A%84%E3%83%9E%E3%83%AB%E3%83%81%E3%82%BF%E3%82%B9%E3%82%AF
2023/01/08(日) 21:46:05.89ID:Ghk4Hd5x0
>>531
あ、いやすまん
もっと基本的なところで勘違いしてた
Windows3.1ってメインのウィンドウ以外動かないかと思ってた
2023/01/08(日) 22:05:28.27ID:piRgm1WA0
3.1のデモ展示では時計アプリを複数起動して
「ほら、マルチタスクですよ~」ってやってた
2023/01/08(日) 22:20:53.05ID:Ghk4Hd5x0
>>533
なるほどサンクス!
完全に勘違いしてた
535デフォルトの名無しさん (スップ Sdb3-1Rsz)
垢版 |
2023/01/09(月) 09:18:26.66ID:hshZ5aP/d
>>528
直接attrにアクセスするような書き方するなら__getattribute__を改造するのが手っ取り早そう
https://wandbox.org/permlink/8kyCCbavwFRBlV3R

直接dictを継承したSymbolsクラス作った方が楽そうと
後になって気づいたが
2023/01/09(月) 11:26:49.00ID:UbXmK8tM0
プリエンプティブに対応するパッチを書いたことあるがロートルとか言われたのがショックだわ
モバイル全盛のこの時代にCPU100%の張り付きプログラムを推奨することの視野の狭さに驚く
何度も言うがsleepを入れるのは時代とか関係なくそれはアーキテクチャと利用ケースによるものだ
組み込み分野では無限ループでトリガ待ちするのに無限ループで止めるのなんて20年以上前からやってる
537デフォルトの名無しさん (ワッチョイ a109-DWwd)
垢版 |
2023/01/09(月) 12:18:22.83ID:Cob0L2LA0
>>536
逆にuComとかPICだとメインはfor(;;)で最低優先度の処理をsleepなしでゆるゆる回して、
ほとんどの処理を割り込みで動かすからsleepの出番はなくなっちゃうよね
2023/01/09(月) 12:18:48.74ID:Cob0L2LA0
sage忘れすまん
2023/01/09(月) 12:30:53.45ID:r84aUeSC0
動かす環境やOSによっても色々やり方は変わると思います
2023/01/09(月) 12:35:24.04ID:WbC15m7a0
プリエンプティブマルチタスクという言葉が存在する
というところを出発点にしてるから、万能だと思っちゃってるんだろうな
アプリ同士でならうまく行くんだろうけど、
プリエンプティブの仕組みを作ってるOSそのものとは競合する
OSもアプリも一つのコアの上で動くプログラムでしかない
2023/01/09(月) 12:38:36.89ID:fJBcDyWo0
最初のそんな負荷でもない一定周期監視の話から固まる→CPU負荷とかUIブロックの話とかになってるから
UIブロッキングを差し置いてsleepだけ話題にされるともにょるのはわからんでもない
2023/01/09(月) 12:47:08.01ID:P8ctm/0T0
>>541
優先度下げれば解決するって誰かが言ってた
2023/01/09(月) 12:51:26.43ID:r84aUeSC0
各プロセスが協調的に動いているなら、優先度は意味があるかも知れないですね
2023/01/09(月) 12:54:20.02ID:fJBcDyWo0
>>542
流れ見ると負荷の話に対する優先度だからUIスレッドが差し置かれているので結局もにょる
2023/01/09(月) 12:59:35.44ID:r84aUeSC0
処理するにあたり、CPU性能は十分にあるんですよね?
2023/01/09(月) 13:13:54.26ID:hV+nJOyS
>>535
なるほど
これならもし犬にマルチーズとかダックスフンドを追加したくなったとき
犬や猫鶏をinu.py,neko.py,tori.pyとかにそれぞれ分離しても管理しやすそう
ありがとう
2023/01/09(月) 13:30:24.28ID:bS50m3IM0
組み込み向けとかのOSだといまだにそういうアーキテクチャなんじゃないの?
確かタイマー割り込みしたりとかいろいろ面倒だった気がするし
現代的なOSでloopにsleep入れるとか無意味
2023/01/09(月) 13:43:58.36ID:hV+nJOyS
せっかくなのでGPT3に聞いてdictを継承して属性参照できるクラスを書いてみた
https://ideone.com/6msm1f

聞いたのは、
「pythonでdictを継承したクラスの例を書いて」のみなんだが、
わざわざ聞くからには属性参照もしたいってことだろ?
と言わんばかりにその部分も補完したコード出してきてちょっとびびった・・
2023/01/09(月) 15:27:13.21ID:r84aUeSC0
Linuxを含めてUnix系OSならselect関数が使える
ソケット含めてI/Oを監視しプロセスに通知してくれる
Pythonでも、もちろん使える
2023/01/09(月) 17:16:47.85ID:9i8F7U9Np
AIって結局翻訳機みたいなもんで翻訳機に最適化した文章作らないとミスるから仕事で使えないよな
551デフォルトの名無しさん (オッペケ Sr4d-4Wvq)
垢版 |
2023/01/09(月) 17:35:48.91ID:m0H/MGw3r
>>550
プログラミングよりそのスキル身につける方が早い時代は来るかも
2023/01/09(月) 18:01:59.77ID:+jLIXnEf0
https://noauto-nolife.com/post/django-ajax-long-polling/
のcontent.html内{% url 'bbs:single' topic.id %}
って何を指してるかわかりますか?
views.pyかurls.pyのurlpatternsの記載のどこかが原因だとは思うんですけど。
2023/01/09(月) 18:03:12.22ID:+jLIXnEf0
>>552です
NoReverseMatchエラーになります。
singleなんてどこにも記載してないのでそれはそうなんでしょうが
2023/01/09(月) 18:29:36.59
>>552
https://i.imgur.com/iKoZbam.png
2023/01/09(月) 18:38:19.71ID:WbC15m7a0
便利すぎて怖い
2023/01/09(月) 19:33:02.64ID:bS50m3IM0
その意味を理解できないと無意味だよ?
2023/01/09(月) 20:38:05.70ID:YumOwVoa0
>>536
> 何度も言うがsleepを入れるのは時代とか関係なくそれはアーキテクチャと利用ケースによるものだ
だからなんのためにsleep入れてるんだよ
今でもWin3.1とか組込でノンプリエンティティブOS使ってるから時代に関係ないとでも言うのか?

> 組み込み分野では無限ループでトリガ待ちするのに無限ループで止めるのなんて20年以上前からやってる
話しそらそうと必死すぎw
2023/01/09(月) 20:39:49.86ID:YumOwVoa0
>>541
だからUIと重い処理はスレッド分けろって書いてあるだろ
プアな環境でCPUがアップアップならワーカースレッドの優先度下げろ
2023/01/09(月) 20:41:46.54ID:YumOwVoa0
>>540
カーネルスレッドの仕組みも知らないなら黙ってた方がいいぞ...
2023/01/09(月) 21:19:53.52ID:VzKaZmuqd
スレッドを分けろ、を起点にせずに優先度の話から入った理由が気になる
2023/01/09(月) 21:38:55.07ID:rm/gRoLA0
>>560
優先度の話はこれが最初か>>491
何もおかしくない気がするが

スレッド分けたところで優先度が高かったら、他のアプリがカクカクになるぞ
2023/01/09(月) 21:39:13.38ID:fJBcDyWo0
確かにUIスレッドとワーカーを分ければUIが固まることは無い
実際のところ同一優先度でもタイムスライスしてくれるのでUIはなんとか動くし、優先度下げればさらによく動く

ただ結局複数プロセスで動くOSである以上処理負荷をどこまでかけるかっていうのはそのプロセスのマナーになる
他プロセスがより低い優先度のワーカー動かしてるとそっちがあからさまに動かなくなるのでsleep入れるのは間違ってはいない
通常よりちょっと下げるだけであればUIは普通に動くが他プロセスの通信や動画がガクガクになったりする
2023/01/09(月) 21:52:50.87ID:YumOwVoa0
>>560
おれの最初のレスは >>480 に対するレスだから
2023/01/09(月) 21:59:14.36ID:YumOwVoa0
>>562
> 他プロセスがより低い優先度のワーカー動かしてるとそっちがあからさまに動かなくなるのでsleep入れるのは間違ってはいない
その低い優先度のワーカースレッドがないと単に無駄なsleepしてるだけのタコソフトになるわけだがw
普通により低い優先度にしなよ...

> 通常よりちょっと下げるだけであればUIは普通に動くが他プロセスの通信や動画がガクガクになったりする
なんで通信や動画再生の優先度を下げるんだよ...
2023/01/09(月) 21:59:59.63ID:Qq7b1M5F0
RTOSのように優先度が絶対的なら話は単純だけど
デスクトップOSは忖度があるからsleepいれるとか場当たり的な作法を
正解と勘違いするのもわからんでもないかな(ないけど)
2023/01/09(月) 22:02:02.62ID:fJBcDyWo0
>>564
優先度を決めてぶん回すって言うのは他の優先度低いやつを気にしないって宣言でもある

> なんで通信や動画再生の優先度を下げるんだよ...
おっとごめん。下げるっていうのは自プロセスのワーカの話ね。影響を受けるほうはchromeブラウザの動画再生とかって話。
2023/01/09(月) 22:21:26.63ID:YumOwVoa0
>>566
> 優先度を決めてぶん回すって言うのは他の優先度低いやつを気にしないって宣言でもある
下げてる優先度よりさらに低い優先度のタスクを気にする必要あるの?
そう言うのはCPUが空いてるなら動けばいいっていうタスクじゃないの?
あと大抵のデスクトップOSだと同一優先度ならラウンドロビンになるから全く動かなくなるとかないし

> おっとごめん。下げるっていうのは自プロセスのワーカの話ね。影響を受けるほうはchromeブラウザの動画再生とかって話。
ワーカー下げてるのに動画再生がカクカクするならCPU以外のリソースの影響でしょ
それってsleep入れても改善しなくね?
2023/01/09(月) 22:44:46.53ID:UbXmK8tM0
元の話に戻すと、たかだかファイル更新をウォッチするのにCPUが100%に張り付くプログラムが正解だって言われて納得できる人は少ないだろう
OSの深いところまで知らなくても利用できるようにwatchdogなどのパッケージが使うのが正解なんだと思うよ
2023/01/09(月) 23:09:50.64ID:YumOwVoa0
元の話は

> 特定のフォルダを5分おきに監視して、新たに作成されたファイル名を
SQLiteテーブルに登録していく…的なことをやりたい

なのでsleepで5分待って処理するなり(まあ処理時間分ずれるから5分毎に処理したいならそれなりの処置が要るけど)ファイル監視APIなりwatchdogみたいなライブラリ使うなりすればいいだけの話でCPU100%なんて話は出てない

CPU 100%の話は
> 単純にメモリ内で巨大な配列の計算をしたいとかで、
> 人間が判るほど時間のかかる処理をする時に、
> ループの中に微小なsleepを入れておくと、そのタイミングでOSがタスク切り替えできるので、
> 他のアプリに影響せずに処理できる
とか昔のノウハウでドヤった老害がいただけの話
2023/01/09(月) 23:45:15.82ID:r84aUeSC0
新たに作られたファイルを記録するだけなら、数十分間隔でチェックしても間に合いそう
2023/01/09(月) 23:48:51.92ID:bS50m3IM0
話が逸れまくったなw
本当おじさんは関係ない話で荒らすのが好きだな
2023/01/10(火) 00:12:28.63ID:YUW/czN/0
Python の話でもないし
プログラム板の皆さんに裁定してもらえ
2023/01/10(火) 00:32:37.03ID:pwe9NrJo0
ここの話題にしたいなら、せめてPythonのコードに落とすところ迄やって欲しい
574デフォルトの名無しさん (ブーイモ MM4b-mEot)
垢版 |
2023/01/10(火) 00:56:07.09ID:7fmBGHmvM
pythonでスレッドの優先度を指定できる?
575デフォルトの名無しさん (ブーイモ MM4b-mEot)
垢版 |
2023/01/10(火) 00:57:08.39ID:7fmBGHmvM
threadingモジュールにはthere are no prioritiesって書かれてるんだが
2023/01/10(火) 01:18:40.47ID:BEmjqJ7z0
>>574
psutilでいける
Windowsでも出来た
2023/01/10(火) 01:30:42.71ID:tyEc5PEMa
DoEvent しないと何も動かない。
基本的に、プログレスバーで処理の進捗状況も表示できない。
処理にCPU を使われるから、描画できない

スクレイピングでも、10秒ぐらいsleep しないと、ajax のページの内容が取れない。
他のプロセスに、CPUを与えないと通信できない
2023/01/10(火) 02:52:37.03ID:BEmjqJ7z0
あぁ、プロセスじゃなくてスレッドか
公式のウェブサイトにはないと優先度はないと書かれているら自前で実装かね
579デフォルトの名無しさん (ブーイモ MM35-JgFh)
垢版 |
2023/01/10(火) 04:26:53.04ID:bCHQzZKpM
>>485
> 30代Pythonクソチョン男は強姦魔の犯罪者!
> あなたの近くにいます!
> 父母と祖父母の戸籍謄本を提出させましょう!

ホントそれ
2023/01/10(火) 06:53:53.27ID:1UMzF0dp0
>>574
やったことはないけど例えばWindowsならnative_idでスレッドid取得してctypes経由でSetThreadPriority呼ぶとかかなぁ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況