【まず1嫁】くだすれPython(超初心者用) その58

■ このスレッドは過去ログ倉庫に格納されています
2022/09/07(水) 10:33:53.50ID:RjZl78eW
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。
「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。

このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。

★エラーを解決したい場合★は、
  表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
  実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。

Pythonの★ソースコードをそのまま5ちゃんに貼るとインデントが崩れてチヌ★
【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】掲示板の仕様なので、
プログラム文は↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Python公式◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi

〇前スレ〇
【まず1嫁】くだすれPython(超初心者用) その57
https://mevius.5ch.net/test/read.cgi/tech/1653225908/

次スレたては >>985 あたりが挑戦する。
### END OF TEMPLATE ###
2022/12/07(水) 18:07:39.50ID:bqsgvkfw
こんにちは。

発売される本の情報を調べるプログラムを作成しています。
サイトから本の情報をダウンロードすると、 '行政法論議の諸相\u3000\u3000行政法研究\u3000第9巻' のように文字列の中に
unicodeエスケープ が含まれているデータがダウンロードできます。 この\u3000 を全角スペースに変換して
'行政法論議の諸相  行政法研究 第9巻' にしたいのですが、単純に replaceメソッドでやれば良いのか、他にエスケープにも対応できるスマートな
方法があるのか調べているのですが結論がまだ出ていません。

よい方法があればヒントをいただけると助かります。
2022/12/07(水) 19:27:52.16ID:ImIPJc05
こんなかんじで
ret = re.sub(\r'\\u(\x+)', lambda x: xを加工して置換後の文字列を返却, str)
2022/12/07(水) 19:58:34.21ID:pjHTSGyq
肝心の変換部分がないやんw
re.sub(r"\\u\d+", lambda x: x.group(0).encode().decode("unicode-escape"), s)
2022/12/07(水) 21:11:42.52ID:bqsgvkfw
>>317
ありがとうございます。
参考になります。
正規表現はさっぱり・・・なので これを機会に勉強します。

>>318
うぉぉ!いけました。
ありがとうございましたぁぁ!
完全に謎の呪文にしか見えませんが、がんばって理解したいと思います。
2022/12/08(木) 02:19:47.22ID:oCI5AIx4
簡単なツールを作っています
ユーザーによって変えさせたい変数(パスなど)をファイル先頭にまとめてグローバル変数にしてるんですが、グローバル変数を使うのってあんまりよくないんでしょうか?
ローカル変数にすると変数をまとめられないので使いにくくなってしまいます
何かうまい方法があったら教えてください
2022/12/08(木) 03:13:43.00ID:5V0EQc+u
>>320
別にそのままでいいと思います
322デフォルトの名無しさん
垢版 |
2022/12/08(木) 03:25:28.06ID:narvdbFL
>>320
ユーザーによって変えさせたい値はソースに書かない
コマンドライン引数や環境変数や設定ファイルに書く
2022/12/08(木) 06:39:32.19ID:oJhaQYN9
>>316
Ruby では単に、受け取ったJSON 文字列を、JSON.parse/load するだけで、
Unicode エスケープシーケンスが、unescape される

require 'json'

json_str = '["諸相\u3000\u3000行政法研究\u3000第"]'

p JSON.parse( json_str )
p JSON.load( json_str )

出力。どちらも同じ
["諸相  行政法研究 第"]
["諸相  行政法研究 第"]
2022/12/08(木) 07:41:34.65ID:9oBByyuG
>>321
>>322
なるほど、ありがとうございます
今回はこのままいこうと思います

ちなみにですが、関数内でグローバル変数を使う場合って直接使っていいんですよね?
関数に引数で渡したらおかしいでしょうか?
2022/12/08(木) 09:59:10.87ID:oOSaJ09t
>>324
モジュール変数にしたら区別しやすい
config.pyにparam1を定義して
import config as cfgでインポート
使うときはcfg.param1でアクセス
そうしたら、いちいちglobal宣言する必要もないし、引数で渡す必要もない
何よりグローバル変更であることが一目で分かるの良い
VSCodeならインテリセンスも効くしね
自分はg.で使ってる
2022/12/08(木) 12:53:21.54ID:nZxWSO9N
>>316
変換する必要ないでしょ?
Python2?
2022/12/08(木) 19:29:33.25ID:9oBByyuG
>>325
すごい!こういうやり方もあるんですね
もしかしてiniファイルもiniファイル取り込み用のモジュールを作って、モジュール変数として使うといいんでしょうか?
というか、単にモジュール変数用のモジュールを用意する場合とiniファイルを使う場合ってどう使い分ければいいんでしょうか?
328デフォルトの名無しさん
垢版 |
2022/12/08(木) 20:45:08.84ID:Q9+/fS2O
config.pyにするかiniにするかではないけど、パッケージの一部にするか設定ファイルにするかは、git等のVCSの管理下に置くかどうかでわけてる
pullやcheckoutした時に上書きされるかされないか
329デフォルトの名無しさん
垢版 |
2022/12/08(木) 23:22:07.43ID:zvxdsTpi
すいません、
リストの要素を全部合計したいのですが

sum_size = ['0.01', '0.01']
こういうリストの場合

数字が文字列になってるので、
sum(size)でやるとエラーになってしまいます、
うまく数字として合計する方法ないでしょうか?
330デフォルトの名無しさん
垢版 |
2022/12/08(木) 23:40:10.50ID:zvxdsTpi
なんとかできた、
sum_size = sum([float(i) for i in size])
一回文字列をほかの型に変換してからたしてみた。
2022/12/09(金) 00:16:46.06ID:ZpsSOYHl
>>330
floatの計算は誤差が出るのでroundとかしないといけないような?
自分も初心者なのでベテランの方教えてください
332デフォルトの名無しさん
垢版 |
2022/12/09(金) 00:56:45.74ID:oqBhWWLy
わざわざ誤差増やしてどーする
333デフォルトの名無しさん
垢版 |
2022/12/09(金) 09:43:39.39ID:08JBCUgH
>>331
>>332
数字が、
sum_size 0.009999999999999998
こんなことになって、
エラー出ちゃう、
助けてー!
334デフォルトの名無しさん
垢版 |
2022/12/09(金) 09:51:55.86ID:08JBCUgH
0.01とかの数字は、
ビットコインの数です、
持ってるビットコインの数を全部足して、
全部のカズ売るプログラムできたと思って、
安心して寝たら、朝起きたらエラーで手仕舞できてなくて、
めちゃくちゃ損してます・・
2022/12/09(金) 10:18:35.82ID:18tUXm/G
つDecimal
336デフォルトの名無しさん
垢版 |
2022/12/09(金) 10:32:14.66ID:08JBCUgH
>>335
ありがとうございます、
こうしてみました
sum_size = decimal(sum([float(i) for i in size]))

これで安心して寝れる・・
2022/12/09(金) 10:32:48.31ID:DDM/thjI
>>333
それこそ最後に適当な桁でround()しなよ
ただ、そもそもエラーってなんのエラーが出てるんだ?
338デフォルトの名無しさん
垢版 |
2022/12/09(金) 10:35:48.79ID:08JBCUgH
>>337
取引所のビットコインの桁数が決まってて、
小数点多すぎてエラーになってたみたいです、
なんか decimal使ったらエラーがでちゃったので、
こうしてみました
sum_size = round(sum([float(i) for i in size]),5)

これで寝ているだけで朝起きたらお金が増えているかも。
2022/12/09(金) 12:11:32.29ID:VCgN9nGy
sum(Decimal(f) for f in size)
根っこでDecimalにしとかんと意味ない
340デフォルトの名無しさん
垢版 |
2022/12/09(金) 15:24:13.03ID:Z1cscK2k
sum(map(float, sum_size))
341デフォルトの名無しさん
垢版 |
2022/12/09(金) 19:47:53.71ID:08JBCUgH
bot完成した、
今朝はプログラム失敗して大損してたけど、
だいぶ取り返してきた、
超初心者だけど頑張るぞ。
2022/12/09(金) 21:40:44.32ID:eVlnlsHp
Djangoってsql injectionの心配しなくていいんですか
343デフォルトの名無しさん
垢版 |
2022/12/09(金) 23:28:23.30ID:2EB/VYtw
>>342
そんなことないよ
2022/12/09(金) 23:51:14.07ID:eLXAv6sJ
Ruby on Rails では、place holder, ? を使うから、SQL injection されない。
例えば、published.where('published_at < ?', Time.current)

逆に、クライアントから送信された文字列を直接、文字列で連結して使うと、SQL injection される。
SQLにとって特別な意味を持つ、' を使われて、危険な命令を埋め込まれてしまう

例えば、"' OR '1" を入れて、その後に危険な命令を埋め込む

place holderを使うと、"' OR '1" が送られてきても、
'\' OR \'1' のようにエスケープされるので安全

PHP は素人ばかりだから、これでデータを抜ける。
Railsを勉強していないから皆、SQLも文字列を連結して作っている
345デフォルトの名無しさん
垢版 |
2022/12/10(土) 01:16:10.82ID:7ib52StN
>>344
噓ばっかりのキチガイ
346デフォルトの名無しさん
垢版 |
2022/12/10(土) 11:59:45.12ID:srOcl7Oy
ドローダウンやべー、
でも耐えて頑張るぞ、
初心者でも、
botで金持ちになるんだ。。
2022/12/10(土) 14:33:43.70ID:A6rFaSoj
>>346
ソフトで株やってんのか?
残念だけどソフト売買で金持ちになった投資家って聞いたことないな
348デフォルトの名無しさん
垢版 |
2022/12/10(土) 15:55:05.38ID:zHuXawkZ
>>34
もう何行目で気付くかより
何文字目で気付くかの
スルー早押しボタン競争状態
2022/12/10(土) 15:56:43.78ID:zHuXawkZ
>>347
禿バンクって soft bank って会社じゃなかった?しらんけど
350デフォルトの名無しさん
垢版 |
2022/12/10(土) 17:54:40.07ID:u5Pjqn8+
Windowsて外部のexeファイルを直接ダブルクリックして起動するとタスクバーにアイコンが表示されるのに、

pythonのsubprocess.popen経由でexeファイルを起動すると、タスクバーのアイコンがWindowsデフォルトの無印アイコンになってしまいます。
何が原因でしょうか?
2022/12/10(土) 18:57:08.91ID:0yWWcyiC
>>345,348
[Rr]ubyと[Rr]ailsをNGしとけよ...
2022/12/10(土) 23:19:15.79ID:B4c4v6qS
スーパークラスでひな形のメソッドを用意して、
サブクラスでオーバーライドして使う場合には、
ひな形のメソッドの中身はpass文で済ませていいでしょうか?
それとも抽象メソッドできちんと記述するべきでしょうか?
353デフォルトの名無しさん
垢版 |
2022/12/10(土) 23:42:59.44ID:OtY+jJHH
>>350
そんなことないぞ
shell=Falseにしてるか?
354デフォルトの名無しさん
垢版 |
2022/12/10(土) 23:44:40.69ID:OtY+jJHH
>>352
super class が abstract class かそうでないかで分ける
355デフォルトの名無しさん
垢版 |
2022/12/11(日) 00:15:43.20ID:7cpWGyaz
>>353
してます。

ほとんどのexeファイルはsubprocess.popenで開いてもアイコンがタスクバーに現れるのですが、特定のexeファイルにだけこの現象が起きています。

そもそものexeファイルの作り方が悪いのかもしれないですが、ダブルクリックでは問題なくアイコンが出るので不思議に思っています。
2022/12/11(日) 00:16:04.57ID:Lp5RN2UT
それ関係ある?
@abstractmethodじゃなかったら呼べてしまうから?

>>352
どっちにしろ空定義できないからpassでOK
357デフォルトの名無しさん
垢版 |
2022/12/11(日) 02:25:27.32ID:p7BQ55Fk
>>352
オーバーライドしてないサブクラス経由でひな形のメソッドを呼ぶようなコードが書かれた場合にどう対処したい?
それ次第
2022/12/11(日) 03:17:47.86ID:93aPaqaC
NotImplementedErrorにするのは少数派?
2022/12/11(日) 09:52:50.08ID:B9k8N7vL
>>355
Python じゃないけど VBA の Shell 関数で NotePad.exe 起動したら同じようにデフォルトのアイコンになっちゃう
まあ特に困ってないからそのままにしてるけど原因は俺も知りたいな
360デフォルトの名無しさん
垢版 |
2022/12/11(日) 10:30:01.79ID:rRS2TaaR
google colabで
data = list(files.upload().values())
とやってdata にlistとしてファイルを入れてるんだけど

これをやらずにcolabの「ファイル」の部分に直接ファイルをドラッグアンドドロップしたり
google driveからファイルを引っ張ってきたりできるのかな?

最終的には
data = list(file.values())としたいんだけど
どの方法が早いんだろうか?

ちなみにアップロードしてるのは20〜50MBぐらいの音楽ファイル
361360
垢版 |
2022/12/11(日) 11:53:49.74ID:rRS2TaaR
説明を追加する
「Music Transcription with Transformers 」というGoogle colabのコードを利用してる
このコードの一部に
data = list(files.upload().values())
という部分があり、ここでPC内のファイルからwavやmp3をアップロードしてる(ここまではきちんと実行できて問題ない)

更に時間を節約するためにそこを省略して、すでにcolab の /content/フォルダ内にアップロードしたファイルを利用したい
テキストファイルなら以下のようにやればいいことは確認した。

# /content/ディレクトリ内のファイルから、'filename.txt'を選択します。
with open('filename.txt', 'r') as f:
data = f.read()

だけど、wavやmp3の場合はどうしたらいいのかわからない
うまくいっている「data = list(files.upload().values())」のlistとかvaluesとかを考慮すりゃいいとは思うんだけど
書き方がわからない
362デフォルトの名無しさん
垢版 |
2022/12/11(日) 12:41:02.10ID:mmiA1K97
>>358
正解おめ
363352
垢版 |
2022/12/11(日) 13:09:25.66ID:HrCBt1qU
レスしてくれた方々、ありがとうございます

>>354
スーパークラスは一応通常クラスにしてあります

>>356
分かりました

>>357
厳密に言えば呼ばれたら困るには困るんですが、
勉強で一人で書いてるコードなのでそれはあり得ないんです
2022/12/11(日) 13:18:57.18ID:GglWfKZ4
Ruby の抽象クラスは、
抽象クラスではエラーになって、派生クラスのみで使える

class 親
def a
raise NotImplementedError
end
end

class 子 < 親
def a
処理を、override
end
end
2022/12/11(日) 13:32:20.67ID:mmiA1K97
>勉強で一人で書いてるコード

数日後や数ヶ月後数年後の自分は他人だと思え
366デフォルトの名無しさん
垢版 |
2022/12/11(日) 13:41:25.83ID:gxqyFrkM
>>361
colabのストレージって永続化されないと思うから、
先にアップロードしたファイルを使いたいならGoogleドライブをマウントしないとダメじゃない?
ファイルタブの上のアイコンの左から3番目のドライブのボタンをクリックするとマウント用のコードが追加されるはず
2022/12/11(日) 14:15:35.66ID:JbTC3Gyg
僕のアルバムに他人ばかり写ってるんですが一体誰ですか?
368デフォルトの名無しさん
垢版 |
2022/12/11(日) 14:58:13.66ID:Mt+1J+8e
>>363
>勉強で一人で書いてるコードなのでそれはあり得ないんです

そういう考え方はよくないね
勉強で書いてるなら尚更良くない
他人だけでなく自分がうっかり間違えた場合にコードにどう振る舞って欲しいかを考えないと
369デフォルトの名無しさん
垢版 |
2022/12/11(日) 15:08:27.80ID:FWNEJR9L
サブクラス化するときにオーバーライドを強制したいなら抽象メソッドにして中身はpassで可
オーバーライドを強制はしないけど該当メソッドが呼ばれた時はエラーにしたいなら通常メソッドでNotImplementedError
基本的にはこの2つのどちらか

強制もしたくないし呼び出されてもエラーにしたくないしpass以外のデフォルト実装も提供したくないなら通常メソッドでpassってことになるが
それが一番適切な選択になるようなユースケースは無いんじゃね?
370363
垢版 |
2022/12/11(日) 15:32:54.99ID:HrCBt1qU
レスありがとうございます
ちなみにカードゲームを作っていて、スーパークラスがPlayer、
サブクラスがHuman・Computerです

>>365
はい、それは時間が経った時に実感します
ただ今回は300行程度の短いものですから…

>>368
そうなんですね
ただ、そのスーパークラスをインスタンス化することは無いです

>>369
そうなんですか
いろいろ制約をかけるとPythonらしくない、と人に言われたこともありまして
2022/12/11(日) 19:28:32.33ID:EEtCFdnW
よくいる賛同欲しいそれ以外お断り系質問の匂いがしますね違うかな
372デフォルトの名無しさん
垢版 |
2022/12/11(日) 19:46:01.79ID:tS4zFrKc
NotImplementedErrorで良くね派
実際にメソッド呼ぶまでエラーにならないのが欠点だがABCMetaはめんどい
373370
垢版 |
2022/12/12(月) 22:08:43.56ID:1+Ogth18
>>371
確かに…
以後気を付けます

>>372
ありがとうございます
検討します
374デフォルトの名無しさん
垢版 |
2022/12/14(水) 21:44:28.17ID:XhtdH9iq
>>370
>>スーパークラスをインスタンス化することは無い

>>363
>>354
スーパークラスは一応通常クラスにしてあります

矛盾してるんだよな
意味わからず調べず返事するからだろうけど
375デフォルトの名無しさん
垢版 |
2022/12/14(水) 21:53:17.73ID:XhtdH9iq
>>371
都合の悪い意見はスルーしてるんだよな

あるいは馬鹿は自分の理解の及ばない単語は目に入らない
(スルーしてるんじゃなくマジで見えない)という話があるがそれかもしれん
376デフォルトの名無しさん
垢版 |
2022/12/14(水) 22:44:36.02ID:MDY4fnZr
素人質問で恐縮なのですが、
…なんて常套句はさておき、本当に本当の初心者なのでLv低い質問だと思いますが、

b = 2
と入力して、
type(b)
で、変数bの型は何ですか?と聞くだけの超簡単なコマンドのはずなのに
何でエラーが出てしまうんでしょう?
(ここで躓いているようじゃ先が思いやられるかな?)
(スクショ貼れませんでした、すみません)
誰かよろしくおねがいします
377376
垢版 |
2022/12/14(水) 22:47:39.51ID:MDY4fnZr
環境はgoogle drive上のgoogle colabolatoryでやっています。
ちなみにwindows10です。
スクショ貼ろうとしましたが、うpろだの多分urlがNGワードに引っかかっちゃったみたいです
2022/12/14(水) 22:50:23.63ID:sU0yxaOg
エラー出ないのでその情報じゃなんもわからん
379376
垢版 |
2022/12/14(水) 22:57:09.58ID:MDY4fnZr
確かにもっともなご指摘・・・
これで貼れるでしょうか?
https://imgur.com/a/96Z0WgY
2022/12/14(水) 23:03:55.05ID:kP9TY3cy
それこそColabなら共有(共同作業)できるから
捨て垢でやり直してリンク貼ったらどうか
2022/12/14(水) 23:09:40.60ID:NEZYoEtN
>>379
typeっていう名前の変数を定義してないか?
382376
垢版 |
2022/12/14(水) 23:20:08.50ID:MDY4fnZr
>380
それも手ですね
分からなかったらそうします

>381
予約語を変数として定義できるんですか?
定義してるかどうかは、どうやって確かめますか?
2022/12/14(水) 23:36:24.27ID:SV0C9PdI
del type
384376
垢版 |
2022/12/14(水) 23:41:19.54ID:MDY4fnZr
>383
ありがとうございます、解決しました!!
色々と変にいじってたうちにtypeに変数を定義しちゃってたのが原因だったみたいですね。
これで先に進めます。
385デフォルトの名無しさん
垢版 |
2022/12/15(木) 01:16:43.12ID:jZ5UYKI0
>>382
>予約語を変数として定義できるんですか?
できないです。SyntaxErrorがおきます
386デフォルトの名無しさん
垢版 |
2022/12/15(木) 01:20:47.13ID:kymHgKbk
えっ?
387デフォルトの名無しさん
垢版 |
2022/12/15(木) 01:36:22.80ID:XVN1N3BK
予約語ってのはdelとかforとか文を形成するものじゃない?厳密には違うかもしれないけど書き換わったら根本的に意味をなさないもの
typeとかは組み込み関数だけど、場合によっては別の関数で上書きして使いたいときがあるかもしれない。便利機能を追加するときとか
388デフォルトの名無しさん
垢版 |
2022/12/15(木) 04:22:37.68ID:NZLYDmOy
なるほど
2022/12/16(金) 03:13:08.59ID:mVqdHhnt
pycharmの最新版を入れたら、デバッグの時に日本語が文字化けするようになったわ。
2022/12/16(金) 06:30:54.79ID:BMo1BRTS
pipで入れれるツールをよく作るのですが、インストール後に生成したファイル(アクセストークン、設定、キャッシュなど) はどこに保存するのが普通ですか?
アンインストール時に一緒に消せるようにしたいのですが、package dataだと最初からファイルが存在している必要があり、管理がしにくく思っています。
なにか実践されてる方法をご存知でしたら教えてください。
391デフォルトの名無しさん
垢版 |
2022/12/17(土) 15:32:13.15ID:REqE3zrN
質問っす。
マルチグラボで並列処理をpythonでしたいとき
何がおすすめですか?
vs?colab?charm?
2022/12/17(土) 16:20:39.02ID:38dnloyr
>マルチグラボで並列処理
肝心のここが謎だけどその並列処理ツールの公式サイトで聞いたら?
きっと好きなの使えっていわれるよ
2022/12/17(土) 20:09:38.48ID:hPgT/cMS
無理やりチェーンメソッドみたいな事が出来るようになるAPIはありませんか?
自力だとこんな感じでしか思いつかなかったのですが
https://ideone.com/y1cK9w
394デフォルトの名無しさん
垢版 |
2022/12/17(土) 20:17:08.64ID:REqE3zrN
>>392
ありがと!
ついでにflaskとdjangoやりたいんだが
pycharm一択ですか?
2022/12/18(日) 00:00:30.20ID:akxhfAdN
pycharmの無料版はWeb開発に必要な機能がまるっと削られてるからflaskやdjangoやるなら課金必須
無料ならVSCode一択
396デフォルトの名無しさん
垢版 |
2022/12/18(日) 09:52:24.31ID:aCP/2AKW
指定したフォルダの階層内のフォルダ名を一括で変更したいのですがどうしたら良いですか?
例えば、以下のような階層で、「test」と名前がつくフォルダを一括で「changed」に変更したいです。
test
|_aaa
|_test
|_iii
|_test
397デフォルトの名無しさん
垢版 |
2022/12/18(日) 09:53:03.96ID:aCP/2AKW
インデントが反映されなかったのでもう1度

test
 |_aaa
  |_test
   |_iii
    |_test
2022/12/18(日) 10:14:02.68ID:pp8ifc2A
再帰でフォルダ名のリストを作る
一番深いフォルダからリネームする
399デフォルトの名無しさん
垢版 |
2022/12/18(日) 10:52:22.78ID:aCP/2AKW
>>398
深い階層からって難しくないですか?
2022/12/18(日) 11:48:07.32ID:ciqdCn4z
>>399
まずは再帰について学ぼうか
401デフォルトの名無しさん
垢版 |
2022/12/18(日) 11:58:44.72ID:aCP/2AKW
>>400
再帰はさすがに知ってます
402デフォルトの名無しさん
垢版 |
2022/12/18(日) 12:00:25.16ID:aCP/2AKW
フォルダ一覧の配列を取得したら、その配列の順番をひっくり返すだけで大丈夫そうですか?
2022/12/18(日) 12:12:18.14ID:ciqdCn4z
再帰知ってて>>399とか意味わからん
知ってるのは名前だけとかいうオチじゃないよね?
とりあえず>>398のリストを作ってみようか
再帰知ってるなら簡単だよね
404デフォルトの名無しさん
垢版 |
2022/12/18(日) 12:17:35.71ID:aCP/2AKW
>>403
上の階層から順番に処理する場合での再帰って言うのでは・・・
405デフォルトの名無しさん
垢版 |
2022/12/18(日) 12:17:37.31ID:jVnwI9CT
>>402
globとか考えてるならワンチャンsortしたらいけるかもしれないけど、自分で深さ優先探索してサブディレクトリがなくなったらリネームして親ディレクトリに戻って他のサブディレクトリに移って同じことをするみたいな実装が確実
os.walkでいけるのかな
406デフォルトの名無しさん
垢版 |
2022/12/18(日) 12:18:32.41ID:aCP/2AKW
>>403
上の階層から順番に処理する場合でも再帰って言うのでは・・・
407デフォルトの名無しさん
垢版 |
2022/12/18(日) 12:21:53.43ID:aCP/2AKW
再帰関数っていうのは関数内で自分自身を呼び出すことだし、別に再帰には後ろから順番に処理するって意味は含まれてなくて、ループを使わずに同じ処理を繰り返す的な意味なのでは
408デフォルトの名無しさん
垢版 |
2022/12/18(日) 12:25:20.51ID:aCP/2AKW
再帰の意味はともあれ、これで行けそうです
見つけました
https://www.curict.com/item/48/4807c14.html
2022/12/18(日) 12:34:42.73ID:ciqdCn4z
>>404,406
誰も上の階層からやるやつを再帰と言わないなんて言ってない
人のレスにケチつけるだけの人みたいだから俺は匙投げるわ
410デフォルトの名無しさん
垢版 |
2022/12/18(日) 12:37:28.05ID:dO1j2fxY
>>402 みたいな発言観ると池沼っているんだなって判る
411デフォルトの名無しさん
垢版 |
2022/12/18(日) 12:38:12.64ID:aCP/2AKW
>>409
再帰の本当の意味をあなたが知らなかっただけですよね?
412デフォルトの名無しさん
垢版 |
2022/12/18(日) 12:40:05.30ID:aCP/2AKW
匙投げるも何も既に解決したと書いてるんですが笑笑
コードも示せない人は回答しないで欲しいですね
413デフォルトの名無しさん
垢版 |
2022/12/18(日) 12:41:20.99ID:dO1j2fxY
池沼は煽ると発狂してレスが増えるから判り易い
414デフォルトの名無しさん
垢版 |
2022/12/18(日) 13:09:02.70ID:I9Yb5Gss
https://ideone.com/52ixhm
どう
415デフォルトの名無しさん
垢版 |
2022/12/18(日) 14:14:57.50ID:zER91A4Q
>>398
わざわざリストする必要もなければ
わざわざ一番深いフォルダからリネームする必要もないでしょ

そうしたほうがいいユースケースがあるのは分かるが今回は質問者が疑問に思う方がまとも
2022/12/18(日) 16:52:43.20ID:UTT6KxDb
浅い方のフォルダを先にリネームしたら深い方のフォルダのフルパス変わるから悪手だと思う
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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