Pythonのお勉強 Part71

■ このスレッドは過去ログ倉庫に格納されています
2023/09/20(水) 09:13:41.41ID:u6xixiUt0
↑スレ立てる毎に減るので、減ってたら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/
※前スレ
Pythonのお勉強 Part70
https://mevius.5ch.net/test/read.cgi/tech/1677856680/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2023/11/02(木) 16:42:58.23ID:obP8ILkg0
>>552
君は弁護士?
弁護士じゃないなら偉そうに断定しない方が良いよ
素人なんだから
2023/11/02(木) 16:56:15.37ID:ORpvM4EQ0
脊髄反射ww
よほど都合が悪いんだね
前科付くことになるから仕方ないのかもしれないけど下手な沈静化図ろうとすると逆効果だよ

これ今は警察も見て見ぬふりして動かないかもしれないけどあんまりいい加減なこと言ってると告訴する人出てくるよ
555デフォルトの名無しさん (ワッチョイ b1f3-zW/F)
垢版 |
2023/11/02(木) 17:26:31.97ID:VbnyJw9p0
さすがにここで通信の秘密について議論するつもりはないわ
2023/11/02(木) 18:16:27.99ID:DKOWPN540
議論したところでなんの生産性もない話題(裁判所の匙加減しだいなので、俺たちに介入する余地は無く無意味なのでは)
2023/11/02(木) 18:49:26.57ID:vtDg34mi0
運営が>>547
「電気通信事業者法または憲法が定める通信の秘密の侵害に当たり得る行為だと考えます。」
「少なくとも不適切な行為であったと考えます。」
等々と表明してるんだから話はもう終わってる
558デフォルトの名無しさん (ワッチョイ b1f3-zW/F)
垢版 |
2023/11/02(木) 20:02:16.98ID:VbnyJw9p0
https://www.youtube.com/watch?v=PfCmxzBd4v8
PyCon JP TV #34: PyCon APAC 2023振り返り

触れるかな
559デフォルトの名無しさん (ワッチョイ 13ac-zW/F)
垢版 |
2023/11/02(木) 22:29:18.46ID:DVTQzfgC0
Pythonの言語の学習におすすめのサイトはありますか?
リファレンス的に使えるHP や ライブラリの使い方のHP
ググれば出ますが、おすすめあれば教えてください。
2023/11/02(木) 22:35:51.46ID:Z5mhCUTh0
運営に争う姿勢がないから略式起訴で裁判にはならない
あとは警察検察の匙加減

罪を認めてるんなら自首したほうが量刑は軽くなるが誰が自首すべきか判断が難しいところ
責任者一人の首を差し出してもスタッフ全員守れるとは限らないからね
561デフォルトの名無しさん (アウアウウー Sad5-g+2W)
垢版 |
2023/11/03(金) 08:10:17.46ID:rVBPlXQLa
つまりここで騒げば騒ぐほど5chの行く末が危うくなると
だから無視しろと?
2023/11/03(金) 12:01:30.37ID:pvnUPuXN0
>>547でDNSクエリを晒した動機に触れてなかったり担当がボランティアだと強調してるあたりに批判を和らげたい意図を感じる

それにコメントに書かれてるようにイベント開始前に指摘があったことや運営関係者が告発者を攻撃していたことが事実なら不法行為に対する償いとは別に組織としての謝罪と処分が必要だろう
563デフォルトの名無しさん (ワッチョイ 1346-eG5z)
垢版 |
2023/11/03(金) 14:13:34.80ID:135shnGH0
>>559
docs.python.org/ja/3/tutorial/index.html
2023/11/05(日) 02:01:03.25ID:SrPBWcHK0
初めてPython触る
VS2022に環境整えたんだけどGUIアプリ作ろうとしても新しいプロジェクトに出てこないんだけどVS2022では作れないってこと?
2023/11/05(日) 02:32:06.16ID:WVQonGtV0
https://learn.microsoft.com/ja-jp/visualstudio/python/managing-python-projects-in-visual-studio?view=vs-2022
雛形は用意されてない模様
Python用のGUIライブラリを自分で選定して構築する必要がある
ネイティブアプリ書けないから当然なんだけどもVSである必要がほぼないね
2023/11/05(日) 04:19:08.15ID:nQmmBj7n0
tkinterはネイティブじゃないか?
567デフォルトの名無しさん (ワッチョイ 4690-0SSA)
垢版 |
2023/11/05(日) 06:39:11.16ID:GNbgJagA0
>>564
GUIアプリはPythonでも作成ができますが、C#とかで作成した方がいいと思いますよ。
仕事でPythonを使用することが要件であれば仕方ありませんが。(そもそも、そんな要件を出す人はあんまりいないと思うし)

PythonはPythonが得意としていることに使用するのをお勧めします。
2023/11/05(日) 07:47:07.85ID:ixjDKXsm0
C#はGUI作成なら一番か

Javaも悪くはない
JavascriptのElectronという手もあるがかさ張る

RustのTauriは良さげだがRustの学習コストが高い
VC++のほうがマシかもな
2023/11/05(日) 10:19:39.87ID:ol9bMVcca
wxPython覚えるとwxWidgetsも使えるようになって
お得ですよ
2023/11/05(日) 10:25:35.56ID:RWNjRicl0
コンソールから何か打ち込んで1行ずつ実行とかやったことないし、
どうせ長いスクリプト書いてる最中に活用なんかできないんだから、
初心者の最初のステップや解説サイト書く人が助かるだけ

そんなの不可能な代わりにコンパイル言語で高速な方が有り難い
2023/11/05(日) 11:59:21.94ID:LMwCZi3CM
各々最適があるのだから
好きにすれば良い
押し付けがしく言う必要はない
572デフォルトの名無しさん (ワッチョイ 4936-9yVh)
垢版 |
2023/11/05(日) 16:32:32.19ID:NcRV8IfI0
Python/Qtで問題ない。
2023/11/05(日) 19:35:21.75ID:i4+JFogG0
PySideでやってるな
触ってる人すくなそうだけどQtQuickの方も触りだした
2023/11/06(月) 09:12:57.41ID:tszvNtiA0
jpgファイルをドラッグアンドドロップしたら
処理するってつくりたいんだけど
winだとコマンドプロンプト経由じゃないとダメ?
PYファイルじゃむり?
2023/11/06(月) 10:15:00.39ID:48qtdwXca
python(。えxぇ)じゃなくて
pythonw(。えxぇ)の方を使う
2023/11/06(月) 15:06:07.26ID:IA199WY/0
ちんこ痒いの病気かもしれん
2023/11/08(水) 12:54:07.78ID:EPzAmPS60
Pythonは対話型で学習しやすいのでPythonを学ぶというよりはプログラム初学に向いてる
コンパイルせず即実行できるのが便利なだけ…かな
京都大学では1回生の学生向けにプログラムの授業を行ってるが
X=X+1を方程式と勘違いしてこの方程式は間違ってるとかどうやって解くの?という学生が多い
プログラムでは変数として使うという風に説明する。Pythonならたった数行だけでどういうものかわかるのでやはり初学者向けといえる
578デフォルトの名無しさん (ワッチョイ c551-ZTan)
垢版 |
2023/11/08(水) 13:26:28.57ID:82yhyslz0
=を本来の意味と違う意味で使ってるんだからそりゃ間違ってると思うわな
プログラム言語作ったやつが悪い
2023/11/08(水) 13:31:21.96ID:M+eAhKpj0
lispのように
(set a 3)
の方がよかったか?
2023/11/08(水) 13:35:14.32ID:o1wz1QuQa
CS知ってればそんな勘違いするはずないんだけどな
数式をメタファーとして用いてるが関数型言語でもない言語は数学とは全く違うってことが理解できてない
CSは中学生から必要
581デフォルトの名無しさん (ワッチョイ 4910-ZTan)
垢版 |
2023/11/08(水) 15:55:32.78ID:0RzzgATi0
>>577
その話題のおかげで久しぶりにPythonを触ってみようという気になった。
例えば2^16倍精度浮動小数点数の最大値を計算するのに、Python3のDecimalではEmaxを最大にしても桁あふれするが、
Mpmathを使う以外にもPython2のDecimalが使える。
そのDecimalの書き方でもともとやっていた書き方よりも短く工夫できた。
2023/11/08(水) 17:45:04.49ID:EFPFqmm90
Incoぽ?ち
2023/11/08(水) 22:59:11.98ID:EduYhT2N0
>>574
Ruby で説明すると、

デスクトップにショートカットを作って、
例えば、コマンドプロンプトでRubyを起動するなら、リンク先を以下のように設定する

C:\Windows\System32\cmd@exe /k "ruby C:/Users/Owner/Documents/a.rb"
ただし、@はドットに変えて下さい

コマンドプロンプトを経由しない場合は、
直接Rubyの実行ファイルがある絶対パスを書く

C:\Ruby25-x64\bin\ruby.exe C:/Users/Owner/Documents/a.rb

これで、Drag & Drop したファイルパスが、
a.rb の中で、ARGV[ 0 ] に入ってくる
2023/11/08(水) 23:01:59.61ID:rOfRZ5Bf0
Goだと?
2023/11/08(水) 23:05:05.88ID:hH3k8goZ0
関連?スレか

「京大生でもx=x+1が分からない」、喜多教授が明かすPython教育の実態 ★3 [少考さん★]
http://asahi.5ch.net/test/read.cgi/newsplus/1699429080/
2023/11/08(水) 23:10:06.00ID:rOfRZ5Bf0
=を等しいという意味だとしても、1+1=2を無批判に受け入れるのはおかしい
1+1=1+1は正しい
1+1と2は明らかに違うもの
2023/11/08(水) 23:26:13.31ID:HvIjZsS8d
Python世界だともう少しややこしく
確か256以下は同じになるんじゃなかった?
2=1+1は正しい
2000=1000+1000は間違い
とかなんとか
2023/11/08(水) 23:29:18.59ID:lU2++3tG0
やはりPythonでも代入は:=にすべきだったな
2023/11/09(木) 05:37:23.81ID:u7A0OM5bM
>>574
送るからも余裕
argparseが役に立った
2023/11/09(木) 05:40:30.95ID:u7A0OM5bM
>>585
分からないんじゃなくて知らないだけだな
2023/11/09(木) 07:11:40.89ID:i4b+P9OO0
=使わずに:=だけ使っても書ける?
2023/11/09(木) 07:14:51.81ID:i4b+P9OO0
書けないな
ifの中に無いとSyntaxErrorになる

ifの中にあっても無くてもよくて代入結果が評価可能になるだけ、という演算子でも良かったのに
2023/11/09(木) 10:07:00.20ID:Wk14M+OK0
>>586
そんなもん文脈次第であって何も注釈がなければ式の値で比較するのが普通だろうよ
2023/11/09(木) 10:38:26.14ID:i4b+P9OO0
1+1=2を習う時点で批判的思考ができる奴は少ないので、
こうなんだと言われたらそうなんだと丸呑みしてるだけ
そのまま現在に至る
2023/11/09(木) 10:46:29.67ID:Wk14M+OK0
偉そうな事言ってるだけでなんの反論にもなってない
2023/11/09(木) 10:47:28.47ID:i4b+P9OO0
反論?
教導だよ
2023/11/09(木) 10:56:43.22ID:Wk14M+OK0
偉そうな事言ってるだけでなんの教導にもなってない
2023/11/09(木) 11:37:06.85ID:gopD44tH0
x=x+1くらいは1度説明したらすぐわかるやろ
学生よりも京大の教授がこのレベルというのが衝撃的
日本が沈没するわけだわ
599デフォルトの名無しさん (アウアウウー Saa5-CWlg)
垢版 |
2023/11/09(木) 12:09:23.93ID:Fo7n9qIpa
単に記号の問題なので
x := x + 1
でも
x :~ x + 1
でも
x <- x + 1
でも
x ← x + 1
でもなんでも良い
手間がかからないのが
x = x + 1
それだけ
600デフォルトの名無しさん (アウアウウー Saa5-CWlg)
垢版 |
2023/11/09(木) 12:10:16.09ID:Fo7n9qIpa
>>595 >>597
古典数学は 1+1=2 をそのまま受け入れる
現代数学は 1+1=2 を疑いその証明から始める
2023/11/09(木) 12:18:15.60ID:Wk14M+OK0
それは>>586
>1+1=1+1は正しい
>1+1と2は明らかに違うもの
と繋がるの?
2023/11/09(木) 12:49:40.60ID:Nh0igmG80
guido氏が来るぞ
https://pyconjp.connpass.com/event/301716/
603デフォルトの名無しさん (アウアウウー Saa5-CWlg)
垢版 |
2023/11/09(木) 13:11:26.45ID:Fo7n9qIpa
>>602
灯台ωωω
2023/11/09(木) 13:15:59.83ID:i4b+P9OO0
代入が := で、比較が == なのに、= も使う言語がある
= も比較で、文字列の大文字小文字を無視するという違いがある
605デフォルトの名無しさん (ワッチョイ 4910-ZTan)
垢版 |
2023/11/09(木) 14:24:11.67ID:iUBVM1B70
>>602
PyPyの例えば2.7.13ではDecimalで桁数が10^10^5程度まで数値が扱える(最大値は不明)が、
Python3のDecimalでは桁数が999999999999999999までしか数値が扱えない。
この点を今後どうするのか聞いてほしいな。
2023/11/09(木) 14:53:50.44ID:Wk14M+OK0
ID:Fo7n9qIpaもID:i4b+P9OO0も話を放りだしちゃったな
2023/11/09(木) 15:02:43.48ID:Fo7n9qIpa
import decimal
decimal.getcontext().prec = 15
608デフォルトの名無しさん (ワッチョイ 4910-ZTan)
垢版 |
2023/11/09(木) 15:11:21.88ID:iUBVM1B70
とりあえずPython3でもMpmathでprecを巨大にすれば巨大数が扱えて誤差は出ないようだが、
検算にPython3のMpmath、計算にPyPy2.7.13のDecimalを使っている。
環境が異なるために1つのプログラムで検算までできないという問題点がある。

ちなみに2^128倍精度浮動小数点数の最大値の計算をするときには、
PyPy2.7.13のDecimalではprecを1000に、Python3のMpmathではprecを10000とか100000とかにしないと誤差が出る。
2023/11/09(木) 15:14:41.36ID:Wk14M+OK0
>>607
>>600-601の続きはなし?
610デフォルトの名無しさん (ワッチョイ 4910-ZTan)
垢版 |
2023/11/09(木) 15:21:06.86ID:iUBVM1B70
>>608
今はMpmathのprecは1000で誤差は出なかったかも?
先頭から100桁程度までしか確認していないので何とも言えないが。
611デフォルトの名無しさん (ワッチョイ 4910-ZTan)
垢版 |
2023/11/09(木) 15:31:52.00ID:iUBVM1B70
python3では
getcontext().prec = 1000
getcontext().Emax = 999999999999999999
まで、
PyPy2.7.13では
getcontext().prec = 1000
getcontext().Emax = 10**10**5
程度まで、Emaxを10**10**6にするとエラーになる。
612デフォルトの名無しさん (ワッチョイ 4910-ZTan)
垢版 |
2023/11/09(木) 15:54:04.12ID:iUBVM1B70
mpmathでprecが1000での実行結果

2023-11-09 15:40:37.341115
8.693707727864259530039258884770161044063845806590697696822196758051010321507084364738474185393716049143428269592664416299506985821607020...
e+258313751232903212140244172706732768962283773495639777019746650509389263410185892774365178070439343470463409842392677007886631633129570799399839688363235723
2023-11-09 15:40:37.821113
0:00:00.479998

mpmathでprecが100での実行結果

2023-11-09 15:40:42.917141
1.73874154557285190600785177695403220881276916131813953936443935161020206430141687294769483707874321
e+258313751232903212140244172706732768962283773495639777019746650509389263410185892774365178070439343470463409842392677007886631633129570799399839688363235724
2023-11-09 15:40:42.969102
0:00:00.051961

precが100だと明らかに誤差がある。これも問題。
前者は先頭から100桁程度までと桁数は正確なのを確認している。
613デフォルトの名無しさん (アウアウウー Saa5-CWlg)
垢版 |
2023/11/09(木) 16:07:17.61ID:Fo7n9qIpa
>>609
ごめん >>601 が何を言いたいのか判らなかった
2023/11/09(木) 16:16:09.89ID:Wk14M+OK0
>>613
>>586から読み直して
615デフォルトの名無しさん (ワッチョイ 4910-ZTan)
垢版 |
2023/11/09(木) 16:16:32.99ID:iUBVM1B70
>>602
PyPyのDecimalの誤差の問題は言いにくいが、Python3のDecimalの桁数限界の問題は言っても良さそうだよな。
Python3で動くMpmathの誤差の問題についても言っていいのかな?

Pythonの計算能力は非常に高いので高く評価できる。そのことも言っておきたい。

あとMSのVscodeからダウンロードできるPythonではいまだに3.10が使われているが、なぜまだ3.11や3.12にならないのか?も。
616デフォルトの名無しさん (ワッチョイ 4910-ZTan)
垢版 |
2023/11/09(木) 16:33:36.64ID:iUBVM1B70
こういう計算ではprecを大きくしないと誤差が出る。
また、2^16倍精度浮動小数点数の最大値あたりから桁数が999999999999999999を超えてしまいPython3のDecimalではオーバーフローする。
https://ideone.com/B7quXx

2^256倍精度浮動小数点数の最大値は計算してみたが、2^512倍精度浮動小数点数の最大値は未確認。
617デフォルトの名無しさん (ワッチョイ 4910-ZTan)
垢版 |
2023/11/09(木) 18:53:31.64ID:iUBVM1B70
Python2のDecimalのEmaxの最大値はたぶん10**999999
https://paiza.io/projects/_3oy4rG43bzr-zUb-bO3CQ

これを超えてもエラーすら出ないが計算結果も出ないのでたぶん最大値。
618デフォルトの名無しさん (ワッチョイ 4910-ZTan)
垢版 |
2023/11/09(木) 18:54:46.14ID:iUBVM1B70
書くのが面倒くさいので10の指数表現にしてしまったので、実際にはもっと大きいかも?
2023/11/10(金) 15:53:55.15ID:5sYei61M0
>>585
xなんか使うからややこしいだけでnum=num+1にしたら誰でもわかる
620デフォルトの名無しさん (ワッチョイ 2e46-tR/v)
垢版 |
2023/11/10(金) 16:33:17.33ID:FbH8Mxce0
ヌムって何
2023/11/10(金) 19:08:35.02ID:smhSXpZ/0
変数か定数かにざっくり2種類に分かれるので、
xとかvarならいいけど、numと書いてしまうとそれは定数
622あぼーん
垢版 |
NGNG
あぼーん
2023/11/11(土) 10:26:25.79ID:HDC3RNtv0
>>622
こういう方法もあるんだな
2023/11/13(月) 22:27:11.06ID:V0ByRftD0
paths = list(Path('/content/drive/MyDrive/StableDiffusion/').glob(r'*.*'))
paths.sort(key=os.path.getmtime, reverse=True)

for file in paths:
print(f'{file.stat().st_mtime:.0f} {file.name}')

というプログラムで、フォルダ内の画像を作成日時順にソートできたのですが、
ここの中から上位10個を取り出してそれぞれ関数に入れたいのですが、
どのような手法でやったらいいのでしょうか?
(例:001.png→data1,002.png→data2へのような形にしたいのです。)
よろしくお願いします。
2023/11/13(月) 23:08:29.99ID:hIb2N2Ge0
>>624
https://docs.python.org/ja/3/library/stdtypes.html#list.sort
ソート載ってたこの文書にスライスってのがあるのでそれで取り出しはできる
端から公式文書に目を通すつもりないならChatGPTさんに聞くのもいいよ
2023/11/14(火) 00:03:28.13ID:3XtDLzP+0
>>625
㌧クス
公式ドキュメントは頭から抜けてたわ・・・
申し訳ない。
色々検索しても出てこなかったからどうしようかと思ってたので質問しました。
2023/11/14(火) 00:35:16.33ID:c91qDKwg0
>>622
コスパ良いポイ活だな
2023/11/14(火) 00:44:14.40ID:eAuNTGnN0
こいつ自演レス2回やるようになったんだな
以前は1回だった
2023/11/14(火) 01:34:46.08ID:KAjgCxWWM
>>624
画像ファイルを関数に入れるってどういう意味?
2023/11/14(火) 09:59:04.47ID:POS4QBLh0
スライスはpython入門の1時間目でやるだろ
2023/11/14(火) 12:04:58.19ID:a6f/tVQx0
>>629
パスを渡すってことだろ
逆になんでそれくらい読み取れないんだ?
632デフォルトの名無しさん (ワッチョイ 9f7c-gFzT)
垢版 |
2023/11/14(火) 19:06:35.65ID:xujXPfzz0
>>631
画像のバイナリを関数に渡すって考える方が普通じゃ?
2023/11/14(火) 19:12:22.18ID:POS4QBLh0
そんなアホな取り回しはせんやろ
2023/11/14(火) 20:05:40.30ID:lvDQJ2KR0
ワロタw
2023/11/15(水) 08:14:14.82ID:PY3kt1RSH
そもそも10個の関数を順番に呼び出す仕組みがPythonにはないよね
2023/11/15(水) 08:38:19.84ID:+heJlrgN0
>>624に書いてある、data1というのは関数名なのか
命名のセンスが悪い
637デフォルトの名無しさん (ワッチョイ 9f46-uMtu)
垢版 |
2023/11/15(水) 10:00:41.77ID:4ca/PT+K0
>>635
それが出来ない言語は無いのでないか。

> そもそも10個の関数を順番に呼び出す仕組みがPythonにはないよね
2023/11/15(水) 11:08:40.78ID:t2csacDc0
>>635
4つほど思いつくが
>そもそも10個の関数を順番に呼び出す仕組みがPythonにはないよね
2023/11/15(水) 11:11:13.85ID:+heJlrgN0
似たような関数が並んでるなら引数でどうにかするし、
全然違うのならテーブルで並べるか、シーケンシャルに書いちゃうか
全部画像を処理するんだから、似てると思うけど
2023/11/15(水) 15:31:22.25ID:PY3kt1RSH
>>638
あるの?
だって10個の関数だよ
同じ関数を10回呼ぶのと違うよ
例えば関数名がdata1~data10だとして、
この10個の関数に各々別のパス名を引数に渡しつつ順に呼べる?
2023/11/15(水) 15:38:36.15ID:/tSVEj7/0
そんなことする必要ないことに気がついてくれ
2023/11/15(水) 15:44:53.45ID:VGv7kGCa0
仮にやりたいって話でしょ
Pythonは関数もファーストクラスだから余裕
2023/11/15(水) 17:45:49.81ID:olanfxkjd
# 超適当に答えてみる
def data1(path):
 pass

paths = ["path1.txt","path2.txt","path3.txt",]
datas = [data1,data2,data3,]

# こっちはべた書き
data1(paths[0])
data2(paths[1])
data3(paths[2])

# こっちはグルグル
for data,path in zip(datas,paths):
 data(path)
2023/11/15(水) 20:01:43.64ID:qjPY1w3P0
配列定義する手間で全部書けるだろなにがしたいんだ
645デフォルトの名無しさん (ワッチョイ 1f27-XI6K)
垢版 |
2023/11/15(水) 21:38:54.96ID:SiUAlBQI0
>>629-643
624です。
Lineを使ってStableDiffutionで作成した画像をソートして作成日時が新しいもの10個を自分用に送り付ける方法を考えてました。
んで、関数の話としては>>643のべた書きが近く・・・というかまんまで、文字通りべた書きで10回処理を行いそれぞれ別関数へ突っ込んでます。
本当はもっといい処理方法あると思いまが、あまりプログラム系は触ったことがなく、自分でできる範囲で最適化するつもりです。
>>629 の画像ファイルを関数に入れるに関しては、
im1 = Image.open(data)
という処理を別でやっており、10枚の画像ファイルを、2列5行の画像ファイルで書き出して送信するするつもりです。(ランダムで10枚を1枚にしてLineに送る処理はできたので・・)
LINE NotifyやLineAPIを叩いても、複数画像をまとめて送る手法がなかったので、1つの画像で送る方法をとっています。
で、そのプログラムですが以下のようになってます。
(Google Colabで実行)
from pathlib import Path
import os
paths = list(Path('/content/drive/MyDrive/StableDiffusion/').glob(r'*.*'))
paths.sort(key=os.path.getmtime, reverse=True)
for file in paths:
print(f'{file.stat().st_mtime:.0f} {file.name}')
print (paths.sort)
l_reversed = paths[0::-1]
l2_reversed = paths[1::-2]
l3_reversed = paths[2::-3]
print (l_reversed)
print (l2_reversed)
print (l3_reversed)
このプログラムでソートした上から3つを取り出せたのですがいかがでしょうか。
また、
for file in paths:
print(f'{file.stat().st_mtime:.0f} {file.name}')
の処理があまりよくわかっていないのですが、
これは、for file in pathsでフォルダ指定したフォルダ内の全ファイルに対して、{file.stat().st_mtime:.0f} で更新日、{file.name}でファイル名の表示で会っていますでしょうか。
それか、ほかにもっとスマートな手法ありますでしょうか。 よろしくお願いします。
2023/11/16(木) 00:51:14.98ID:Q2M7jM7u0
たぶんやりたいことはこんなかんじだろ

for i in range(10):
eval("data" +i)(paths[i])
2023/11/16(木) 01:17:55.83ID:YpHIXhGK0
>>645
from pathlib import Path
import os
paths = list(Path('/content/drive/MyDrive/StableDiffusion/').glob(r'*.*'))
paths.sort(key=os.path.getmtime, reverse=True)
for file in paths:
print(f'{file.stat().st_mtime:.0f} {file.name}')
print (paths.sort)
l_reversed = paths[0::-1] <- ここと同様に似た部分は重複処理なので値の変化量を保存する処理にするともっと良くなるかも
l2_reversed = paths[1::-2]
l3_reversed = paths[2::-3]
print (l_reversed)
print (l2_reversed)
print (l3_reversed)
648デフォルトの名無しさん (アウアウウー Sae3-Xzxn)
垢版 |
2023/11/16(木) 10:39:16.68ID:QXdh7keCa
print (l_reversed)
print (l2_reversed)
print (l3_reversed)
かっこわるい
2023/11/16(木) 11:03:41.52ID:pvCpT+Yld
もしかして、
「関数」じゃなくて「変数」だったり?
2023/11/16(木) 13:24:54.46ID:eCSrCCxs0
>>645
>>563 急がば回れの典型
2023/11/16(木) 17:03:02.71ID:1QM1kixjd
l_reversed = paths[0::-1]
l2_reversed = paths[1::-2]
l3_reversed = paths[2::-3]

こんな書き方してるのに
> ランダムで10枚を1枚にしてLineに送る処理はできたので
ここまで辿り着けたのがすげぇ

ランダムのソースコード(I/F部分だけでも)を貼ったら、答えがすぐ返ってくると思う
他の部分もめちゃくちゃ言われるだろうけど、そっちはお勉強ということで
2023/11/16(木) 17:12:01.88ID:KD9PIbB20
このプログラム系の知識感でAPI叩いてるってのが逆にすごい。
2023/11/17(金) 00:14:30.55ID:7IofKhtq0
subprocessとsubprocess.PIPEを1行でimportする方法ってある?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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