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


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



1 名前:デフォルトの名無しさん mailto:sage [2020/07/18(土) 16:33:27.37 ID:/iWSRGfH.net]
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
「Ruby では」「Rubyでは」「某言語では」をNGワード登録推奨

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

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

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



201 名前:デフォルトの名無しさん mailto:sage [2020/07/25(土) 20:15:16.89 ID:blo6HsLG.net]
**

202 名前:デフォルトの名無しさん mailto:sage [2020/07/25(土) 20:29:46.07 ID:1SYMGxp3.net]
>>193
list('aiueo')

203 名前:デフォルトの名無しさん mailto:sage [2020/07/25(土) 20:40:52.19 .net]
>>195
うおおお出来たあd!

204 名前:デフォルトの名無しさん mailto:sage [2020/07/25(土) 22:03:14.21 ID:vIjhxGJs.net]
>>193
[*'aiueo']

205 名前:デフォルトの名無しさん mailto:sage [2020/07/26(日) 10:15:29.96 .net]
>>197
できたあ!
なるほどargmentsの展開のやつ?かd

206 名前:デフォルトの名無しさん mailto:sage [2020/07/26(日) 15:54:42.06 ID:RfjORUiz.net]
任意のフォルダ(fpath)内のすべてのファイルを検索をして
名前に◯◯が含まれていたらcallback1を実行…@
名前に△△が含まれていたらcallback2を実行…A
ただしcallbackはファイル検索がすべて終了した後

をしたくてゴリ押しでなんとかいけたのですが
”ファイル検索後”の処理部分がモヤモヤします・・
(該当したファイル分だけコールバックが保管されてるところとか)

@Aで引っかかったファイルのパスと、対応するコールバックを一時的にリストに保管
そのリストをループして・・・みたいな感じです
https://ideone.com/UUltFZ

もっと良い感じにできないものでしょうか・・

207 名前:デフォルトの名無しさん mailto:sage [2020/07/26(日) 15:55:44.85 ID:xX+uj3iU.net]
最近パス関連の質問してる人は同じ人かね

208 名前:デフォルトの名無しさん mailto:sage [2020/07/26(日) 16:03:14.64 ID:EPcNRgdm.net]
学校の課題だか仕事だか知らんけど、自分でやる気なくて他人にやらせて成果だけ自分のものにしようって考えの人なんでしょ

209 名前:デフォルトの名無しさん mailto:sage [2020/07/26(日) 16:06:18.92 ID:KqRQHpR8.net]
とりあえずos.walk使うのやめてscandir使うと幸せになれると思う



210 名前:デフォルトの名無しさん mailto:sage [2020/07/26(日) 16:10:59.18 ID:RfjORUiz.net]
ゴリ押しできるコードを自力で完成させるまでは質問はしないと自分ルールで決めているのですが
非のない最適コードをかけるまで、となると
ハードルが高いというかゴールが見えないんですよね・・
そもそもどこが足りないかがわからない、みたいな
仕様書を全部読めばいけそうですが右から入って左から抜けていきそうです(汗

>>202
199を投稿した直後に「あれ、これもしかしてこういうモジュールあるのでは・・?」
と思ったのですがまさか、、scandirさっそく調べてみます

211 名前:デフォルトの名無しさん mailto:sage [2020/07/26(日) 17:20:20.59 ID:T2XYMYOv.net]
os.scandir ?
os.listdir 使うと幸せるなれるかも
fnmatch.filter 使うと幸せるなれるかも
glob.glob 使うと幸せるなれるかも
glob.iglob 使うと幸せるなれるかも
pathlib.glob 使うと幸せるなれるかも
pythonやめると幸せになれるかも

for x in glob.glob(‘./foobar/*.[Mm][Pp]4’):
__callback(x)

212 名前:デフォルトの名無しさん mailto:sage [2020/07/26(日) 18:15:39.82 ID:RfjORUiz.net]
そもそもなんですが、もしかして
ディレクトリ内の検索再帰中にファイルの削除操作ってしても良い感じなのでしょうか?
ファイルを一括操作してるコードをいろいろと見てみましたが普通に
for中に、ヒットしたら即ファイル操作(名前変更したり削除したり)してるようなコードばかりです
(もちろん、検索ヒットしたファイルを変更したあとで(変更前のファイルを)扱うようなコールバックはエラーですが)
例えば
ary = ["a","b","c"]
for n in ary:
_ary.pop(-1)
_print(n)

"c"はprintされないので非同期的にループ処理がされている?と思うのですが
こういったことがファイル検索中のファイル操作でも起こるのかなと思い>199のようなコードになったのです

213 名前:デフォルトの名無しさん mailto:sage [2020/07/26(日) 18:18:54.16 ID:70qYmsrd.net]
したいならすればいいししたくないならしなければいいだろ
自分の好きにしろよ

214 名前:デフォルトの名無しさん mailto:sage [2020/07/26(日) 18:26:17.92 ID:RfjORUiz.net]
>>206
ゴリ押しで動くコードはもう完成してるし動くので作業には支障ないんです>199
(もしかするとコードが書かれたurlが下の方なので見えない人がいるかもしれない?https://ideone.com/UUltFZ)

今はその先の段階で、もっと賢く書けないだろうか?
という段階です

215 名前:デフォルトの名無しさん mailto:sage [2020/07/26(日) 18:52:31.09 ID:v4XWgY9j.net]
必要性緊急性のない戯言に付き合う暇な奴はいねえよ

216 名前:デフォルトの名無しさん mailto:sage [2020/07/26(日) 18:54:38.20 ID:RfjORUiz.net]
例えば>199の
>(該当したファイル分だけコールバックが保管されてるところとか)
これの改善策は自レスになりますが
globalsを使えば、dataに入れるのはコールバック名(str型)だけでよくなります
def func():
_print('func()')
globals()['func']()
でも初心者の私は、コールバック名(単なるテキスト)から関数が実行できる、という
そもそもそこを知らなかったので、そういうアイデアが出るまで時間かかりました
(ただその後、そもそもコールバック関数名のテキストだけ入れた場合と、コールバック関数を入れた場合とでそんなに差があるのか?という疑問もわきました)
おそらく上級者の人はこの辺の把握力とか改善スピードがすごいのでしょうね

217 名前:デフォルトの名無しさん mailto:sage [2020/07/26(日) 19:11:40.36 ID:zo3nbSYT.net]
変に質問加工するよりも、課題をそのまま書き込んでくれ

218 名前:デフォルトの名無しさん mailto:sage [2020/07/26(日) 19:25:32.76 ID:RfjORUiz.net]
課題・・?
よくわかりませんがもしかすると>199でそもそも何をしたいのかが
伝わってなかったっぽい・・?
自分で客観的に>199を見て簡単にまとめるとすれば
'''
任意のディレクトリ内で複数のフィルター検索をし
それぞれのフィルターに対応したコールバック関数を
該当ファイルすべてに対して実行する
ただしコールバック実行のタイミングは、検索終了後とする
'''
みたいな感じでしょうか
内容自体はかなり簡単だと思います
初心者の自分ですら必要十分まではこぎつけたので

219 名前:デフォルトの名無しさん [2020/07/26(日) 20:39:49.64 ID:T8T+tUZ4.net]
アホだ



220 名前:デフォルトの名無しさん [2020/07/26(日) 21:24:04.96 ID:Q1iiyZri.net]
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

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

クソチョンw

Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw

日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw

221 名前:デフォルトの名無しさん mailto:sage [2020/07/26(日) 22:24:27.47 ID:T2XYMYOv.net]
>>211
単純に条件にマッチするファイル名のリスト(もしくはイテレータ)を生成して
それに対して関数を適用するほうがずっとシンプルだと思うけど
それだと何か不都合があるの?

条件1にマッチするリストを生成 -> 関数1を適用
条件2にマッチするリストを生成 -> 関数2を適用
条件3にマッチするリストを生成 -> 関数3を適用

222 名前:デフォルトの名無しさん mailto:sage [2020/07/26(日) 22:31:56.65 ID:Lwmxod4b.net]
どーも!マッチでーす!

223 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 00:26:48.90 ID:DIwwuwRf.net]
>>214
それと似た感じでパターン(>199で言うところのfilters)を1関数につき1種にして
lst1 = filter_search('条件1',関数1) #条件に一致したファイルパスのリストを返す …@
list2 = filter_search('条件2',関数2) # lst1をcallback2で使えたりする余地
みたいなことや
見ため的にclassにして
filter_search('/path').fltr('条件1',callback1).fltr('条件2',callback2) …A
みたいな形にしていました

しかしcallbackの内容次第ではファイルが消えたりするので
条件12それに対応する関数12の依存関係が強いなと気付き
lst12 = filter_search(['条件1','条件2']) #対応するcallbackを与える or lst12を再帰させる
みたいに、あえて依存関係を作った方がいいかな?と
(しかし>199のようにcallback割当が野暮ったくなる・・みたいな結果に)

”非同期的にファイルが消えたりリネームされる?されても大丈夫?”という部分がスッキリすれば
(特に大量のファイル数を扱うわけでもないし)214さんの方法や@、Aの方法を取っていたとおもうし
そうでなくとも、コメントアウトで説明入れとけばいいのでは?とも思います
ただ、上手い感じに依存関係をコードの視覚的にパッケージできないだろうかとも思ったのです

224 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 00:38:37.88 ID:sO2/nmC+.net]
pyinstallerって全てのライブラリに対応しているわけじゃないんだね。
まあ、当たり前といえば当たり前だが。。。
うまく実行ファイルできればラッキーというところか。。。

225 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 00:40:44.65 ID:DIwwuwRf.net]
ただ214さんのおっしゃる通りイテレータを使えば
条件の依存関係を保ったまま視覚的な表現ができそうです
一度それでやってみようかと思います

226 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 01:52:08.88 ID:TQCIWmFu.net]
>>216
>しかしcallbackの内容次第ではファイルが消えたりするので
>条件12それに対応する関数12の依存関係が強いなと気付き
>lst12 = filter_search(['条件1','条件2']) #対応するcallbackを与える or lst12を再帰させる
>みたいに、あえて依存関係を作った方がいいかな?と

なるほど、わからん
ファイル消す処理をしてるなら消えて何が困るのか?
依存関係??

全体的に無理に難しい言葉を使おうとしてる印象を受ける
コードもそれと全く同じで無理に難しくしてる印象を受ける

227 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 02:13:07.40 ID:cBvHge2x.net]
>>219
頭の悪い本当の馬鹿は内容を理解せずあちこちからコピペするだけだからこうなる。
ゆとり世代に多い。

228 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 07:31:32.20 ID:Yw3HzFpa.net]
>>218
exeにするときに引数ふやして自分で足そう

229 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 08:30:59.36 ID:DIwwuwRf.net]
>>219
>何が困るのか?
普通に>216@Aのパターンで何も困らないし自分も基本そうしてます
以前ここかどこかで質問したとき
再帰中に消すのはなぁ、みたいな意見が一定数あったので
自分でもファイル一括処理方法のサイトをいくつか調べてみましたが
特に気にしているようなコードはみかけませんでした
それもあって単に、
#---- A ----
条件1='条件'
条件2='条件1依存の条件'
関数1=条件1のための関数
関数2=条件2のための関数
#---- A' ----
lst1 = f_search(条件1,関数1)
lst2 = f_search(条件2,関数2)
#---- B ----
これ(AB間)を
「条件1ありきで条件2を書き、かつ関数12は条件12のためだけに書いたぞ」
という両方を満たす雰囲気をコード上で表現できるようなうまい書き方はないもんかな
という見た目の話です



230 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 09:56:15.59 ID:rtutVcR3.net]
>>222
自分もそういうタイプなので敢えての小言

mp4とmovを振り分けるのに引数にする必要も正規表現使う必要もないですよね。
いやそこは簡略化した例だから、やりたいことを察してピンポイントで助言がほしいというつもりなんだろうけど、それってすごい偉そうな物言いで、助言をもらうのは厳しいと思います、必要ないことやろうとしてるようにしか見えませんから。
といってもそういうセンサーはついてないのだと思うし、そもそもあなたは自分で解決しないと納得できないタイプですから、人には聞かず自分で探し出しましょう。

231 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 10:30:12.06 ID:DIwwuwRf.net]
>人には聞かず自分で探し出しましょう
繰り返しになりますが、
”コードは野暮ったくても実用できるまで”
は解決はしてるんです
ただ、もっと書き方を良くできないだろうか
という点が質問した一番の意図です
その先も自分で探し出しましょうとなると
このスレの存在意義は?とちょっと疑問に思います
(もちろん自分でも探しています)

>199,211でも書いてあるように
>ただしコールバック実行のタイミングは、検索終了後とする …@
なんですよね
しかし今のところ
”検索中、同時進行でコールバック実行(ファイル処理)”
してしまえば問題なく書ける、についての返答なんです
しかし質問の前提は@
要するに@をやらない書き方をしましょう、という提案なんですよね
@をやらない方法は自分自身>216で通過済みで、それがあっての

232 名前:@>199なんです
そこでループしてるなと感じますね

>必要ないことやろうとしてるようにしか見えませんから
複数条件検索の全部終了後の全ファイルパス取得を取得し
それぞれの条件に対応した関数を実行する
ファイル検索に限らずこの部分はほんとに不必要なのかな、とは個人的には思います
[]
[ここ壊れてます]

233 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 10:55:32.33 ID:nBoSZwLd.net]
書き方がウザい。

234 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 11:22:10.97 ID:FO4znkcB.net]
コールバック実行の方法を現役エンジニアが解説【初心者向け】

235 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 13:41:39.26 ID:RLaVSjh7.net]
コールバックにする理由が1mmもないことにワロタ
複数条件考えるなら条件の優先順位考えて上から実行するだけ
最後にやりたいってことは条件の衝突を管理したいようだけど、今の調子だとバグの温床になるぞ
処理の一つ一つは疎結合にして上から順に処理すべき

236 名前:デフォルトの名無しさん [2020/07/27(月) 13:44:15.00 ID:Hxb31aUu.net]
ゆとり教育の馬鹿に何を教えても無駄だと思う

237 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 14:14:30.78 ID:km+HDXw6.net]
>>200
レスしてる人も同じ人

238 名前:デフォルトの名無しさん [2020/07/27(月) 14:17:57.57 ID:EH5Hzntf.net]
mp4とmovで重複してるからどちらか片方を消したい、とかじゃないの

そもそものやりたいことが一切書かれてないからこれ以上は何も出てこない
howは出てくるけど肝心要のやりたいことが一切出てきてないでしょ
なら出てくるコードに対しては「はいそうですね」としか言いようが無い

一番トップのメインの主題が隠されてるから、こちらが提案しても「それは違うこれも違う」言ってる小出し人間だ
コレ、外側の他人から見るとお気持ちだけで否定してるクズにしか見えない

239 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 14:19:43.25 ID:k4QGTEdc.net]
やりたいことも実行できるコードも書かれている件



240 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 14:23:54.22 ID:TQCIWmFu.net]
>>222
>条件2='条件1依存の条件'

これ例えばどんなの?
.mp4と.movの例は依存してないよね?

241 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 14:32:03.41 ID:DIwwuwRf.net]
>条件2='条件1依存の条件'
例えば条件1でヒットしたファイル名だとか
読み取った内容だったりとかで条件2の解釈も変わるときとか
NOT検索とか
ヒットしたら条件1でヒットしたファイルをやっぱり操作しないとか(これは条件を逆にすればいいだけですが)
まだありそうです

242 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 14:55:14.45 ID:TQCIWmFu.net]
>>233
日本語ももうちょっと整理してくれないと読むのがしんどい

> 「条件1でヒットしたファイル名だとか読み取った内容だったりとか」で条件2の解釈も変わるとき

↑これだと「条件1の検索結果に条件2が依存してる」と言ってるのと大差ないからわからないよ
前段の処理次第で解釈が変わる条件と言ってるものが具体的にどういうものを想定しているかを聞いてる

243 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 15:04:59.86 ID:TQCIWmFu.net]
>>227
>処理の一つ一つは疎結合にして上から順に処理すべき

これ大事

244 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 15:06:42.77 ID:DIwwuwRf.net]
>>234
>条件1の検索結果に条件2が依存してる
はその通りの意味でいいと思います
条件1,2は単なるstr型とも限らないので
で、>227さんの言う>処理の一つ一つは疎結合にして上から順に処理すべき
はもちろんのことで、それはもうできたんです
しかし手続き的に条件1とか条件2とか定義するコードの見た目とのトレードオフだと思い
そこでとりあえず>233などいろいろなフィルタを経て、条件に一致するファイルだけをリスト化して
あとでまとめて処理しよう、という形でやってみようという流れがあります

245 名前:デフォルトの名無しさん [2020/07/27(月) 15:37:04.74 ID:hnjNWdgG.net]
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

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

クソチョンw

Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw

日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw

246 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 16:13:55.58 ID:Yw3HzFpa.net]
>> ID:DIwwuwRf
(・∀・)カエレ!!!

247 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 17:34:24.82 ID:AMGxP3t5.net]
>>224
このスレの存在意義は質問ですが、あなたは(私も)人の意見を聞くことのできない人種なので、聞いても無駄です。無駄につきあわされる人は腹を立てます。

もしまだ本心から人の意見が聞きたいと思っていると思うなら、下手な抽象

248 名前:化をせず、ソースコード全部公開することをおすすめします。 []
[ここ壊れてます]

249 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 18:03:09.97 ID:DIwwuwRf.net]
>>239
>199と>207でめちゃくちゃ公開しているんですが・・
で、>人の意見を聞くことのできない
の全く逆で”人の意見を聞いて”それをヒントに、数レス後に自己解決に近いとこまではきたんです
>209とか>216あたりです(結局、クラス化すればglobalsなんて要りませんでしたが)。
それからは、もう最初の質問の意図と全く違う方向で
逆質問みたいになってなぜかこちらが用途について説明してる感じになってるんですよね
なぜファイルをあとで処理するのかとか、なぜコールバックにするのだとか
そこから派生した以降のやり取りってもう質問でもなんでもなく別の雑談だと思いますよ

質問の本質は単に
ファイル検索がすべて終わった後にリスト化して、まとめて最後に処理をする
であったわけで、こういう汎用シーンって結構あると思うんですよ
で上級者の方ならリスト化のテクニックもそれだけ経験豊富なわけですよね
しかし返ってきたのはそもそもの
リスト化や検索後の処理の必要性について
え?そこから?みたいな突っ込みをされて正直なところ不思議な感覚でした



250 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 18:07:27.24 ID:DIwwuwRf.net]
とりあえず自己解決部分を補足しておくと
最初は、
NOT・アンチなどフィルタ検索部

リスト化

通常の条件検索部
_└→条件1リスト化
___└→(条件2以降のための)ファイル処理
_____└→条件2リスト化→ファイル処理(条件3、4,5など続く)→…
…→ 最終処理ファイルリスト化 → 最終ファイル処理
みたいに分けていました(ただ汎用性はまるでないです)

その後>通常の条件検索部以降の条件1,2…部分と
最終ファイル処理部の条件はかぶるし、NOT・アンチフィルタも条件チェーンに入れることができると考え、
まとめることにしました
で、(処理を指示する情報も含めた)そのリスト化は(質問後に)できました
今は↑のような段階的処理をメソッドチェーンにして
条件とコールバックの依存関係だけをみれるような形なので汎用性があります
res = exSearch('/foobar').fltr(条件1,func1).fltr(条件2,func2)
#条件2は条件1の結果を参照することができるが、
#この部分の補足がコードからは読み取りづらい
res.get_func_list()#[ {"func1":['/foobar/hoge/test.txt', '/foobar/fuga/test.txt']},{},{},,, ]
res.do() # self.fnc1やself.fnc2を使ってそれぞれのファイルを処理する

251 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 18:10:20.11 ID:TQCIWmFu.net]
>>236
具体例を聞いてるんだけど?
ないの? それとも出せないの?

252 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 18:19:39.51 ID:DIwwuwRf.net]
それは”条件”というワードがどこから始まったかをたどれば自ずと答えは出てくると思いますよ

253 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 18:54:48 ID:TQCIWmFu.net]
日本語のコミュニケーションに難があって
君が何を求めてるのかわからないから抽象度を下げて具体例を聞いてるんだけど
それも説明できないようなのでもう諦めるわ

254 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 19:11:26 ID:DIwwuwRf.net]
求めている(いた)のは繰り返しになりますが>199や>211ですよ
具体例もソースコードも誰がどう見てもめちゃくちゃハッキリと書いてあります
>1テンプレ推奨のurlも使ってます

255 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 19:46:34.94 ID:RLaVSjh7.net]
>>241にある「ファイル検索がすべて終わった後にリスト化して、まとめて最後に処理をする」だけだったはずなのに話が難しく感じるのは何故だろう

俺もやるならメソッドチェーンかなぁ、優先順位が明

256 名前:確だしね
そうするとクラス化するだろうから、コールバックじゃなくて一連のシンプルな処理をメソッドとして実装するかな
.move(条件1).delete(条件2).rename(条件3)
[]
[ここ壊れてます]

257 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 20:37:43.78 ID:TQCIWmFu.net]
>>246
>.move(条件1).delete(条件2).rename(条件3)

条件1を満たしたファイルをmoveして
moveした結果のうち、さらに条件2を満たしたファイルをdeleteして
deleteした結果のうち・・・renameできねぇ・・・

例だからrenameできないのはいいとして
意図としては上に書いたイメージ?

258 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 20:49:03.20 ID:RLaVSjh7.net]
>>246
もちろん適当

259 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 20:55:23.93 ID:7UNR98vA.net]
PythonのコードをC++に変換するようなツール出てこないかなぁ
Python遅すぎるわ



260 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 21:06:00.74 ID:H1Q/Au4r.net]
プロジェクト始めるときにどの言語が適切か検討しろよ…

261 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 21:13:31.93 ID:RLaVSjh7.net]
>>249
そんなお前はrustかjuliaに行った方が幸せだぞ

262 名前:デフォルトの名無しさん [2020/07/27(月) 21:13:34.28 ID:2I3xUck9.net]
サイトハッキングて意外と簡単やな
re-file.com/18k/1669/

263 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 21:29:56.95 ID:TQCIWmFu.net]
>>248
そっか
まあ>>246の例だとメソッドチェーンにする意味ないもんね

264 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 21:36:32.37 ID:DIwwuwRf.net]
>コールバックじゃなくて一連のシンプルな処理をメソッドとして実装する
決まった処理ならそれが一番わかりやすいですね >>246
.move()
#ここで検索が終わり処理する
.delete()
#ここで検索が終わり処理する
.rename()
#ここで検索が終わり処理する
なのか、
.move().delete().rename()#最後にリストを処理する
か(または混合なのか)はオプションで選択できそうですし

・◯◯ファイルを含むディレクトリ内のファイルは処理しない .ignor(条件)
 全メソッド内で、処理をしないディレクトリを総当り?
・.move(条件1)のmoveする予定のファイル情報を読み取り.delete(条件2)の条件2に与えたい
 .move(条件1).over(条件).delete(条件2) #元々チェーンだから意味が分かりにくいかも
・リスト化の段階でmove→delete→renameによるファイルの存在有無の変化を考慮する必要性があるか否か

改めてこの辺りの実装をやっていきたいと思います ありがとうございました

265 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 22:40:22.24 ID:P2Gsimd7.net]
そもそも、そんな複雑な、2つ以上の条件があるものを、直接削除してはならない!
絶対に、ロールバックできないから

本当は、別のフォルダに、全く同じフォルダ階層を作って、
そこへ削除するものを移動するのが正しい。
その後、検証してから削除するか、そのまま保存しておく

または、すべての階層を丸ごとコピーして、バックアップを作ってから、試すとか

繰り返し途中で削除するのは、非常に危険!
途中でエラーになったら、そこまで処理した分だけが削除されてしまう

データベースで言う、一貫性がなくなるので、ロールバックできない状態になる。
全てが正常終了するか、または、途中でエラーが出たら、すべてが元通りになるべき

高機能なアプリでは、ロールバックできるように作っている

266 名前:デフォルトの名無しさん mailto:sage [2020/07/27(月) 23:56:31 ID:UIY75t8S.net]
珍しくruby厨がまともなことを言っている
削除は戻せないから削除候補ディレクトリに入れるとかして別タイミングで削除ってのは確かによく使う手だな

267 名前:デフォルトの名無しさん mailto:sage [2020/07/28(火) 00:14:18 ID:M5Qb6v84.net]
個人用途ならRecycleBinやTrashに入れる処理をdeleteってことにすれば十分
販売するようなデスクトップアプリならUndo含めて考えるけどそういうのはpythonでは作らない

途中でエラーが出たら元通りにすべきかどうかも仕様次第
DBと違ってファイルシステムの場合は100%元通りには出来ないケースが出てくる

268 名前:デフォルトの名無しさん mailto:sage [2020/07/28(火) 00:58:34.57 ID:8RKB8VPn.net]
PyScripterでデバッグした時のローカルファイルのパス指定ってどうなってるの?
例えばhoge.py、hoge.mp3が同じディレクトリにあって
hoge.py内でhoge.mp3を再生する時パス名を'hoge.mp3'にすると
コマンドラインでは正常に再生されるけど
PyScripterのデバッグ実行だとWinError6のエラーになる

269 名前:デフォルトの名無しさん mailto:sage [2020/07/28(火) 01:41:42 ID:kkkGcMlI.net]
>>258
getcwdでカレントディレクトリをチェックしたらどうかな。
スクリプトのパスはなんかで取れるから、そこからの相対パスと合成するって手もあるよ



270 名前:デフォルトの名無しさん [2020/07/28(火) 08:32:36.71 ID:XiTafywX.net]
PyScripterに、スクリプト実行するときにそこにcdするって設定ないのかな?

271 名前:デフォルトの名無しさん [2020/07/28(火) 09:09:57.39 ID:OeNaj/pH.net]
要約すると、さしあたって必要はないけどスマートなプログラムを書きたいので上級者の人に無料で添削してほしいということです

272 名前:デフォルトの名無しさん mailto:sage [2020/07/28(火) 10:06:58 ID:oemm2Eov.net]
>>260
自分で作っとけ がんがれ

>>261
×上級者
◎俺様の脳内をエスパーできる超能力者かつPythonにも詳しいSSRカード並みの誰か

273 名前:デフォルトの名無しさん mailto:sage [2020/07/28(火) 11:59:28.75 ID:yFFEeJhJ.net]
絶対パス指定じゃ駄目なんか

274 名前:デフォルトの名無しさん mailto:sage [2020/07/28(火) 13:15:28.49 ID:8dcNMYlA.net]
プログラミングスレあるあるだけど
抽象的な質問があると回答→否定されることに怯えている回答者って一定数いるよね
間違えているわけでもないのに妙に回答失敗に怯えているというか
回答が質問者に合わなかったとしても、スレ的には周りから見れば財産にしかならない
上級者であればあるほど質問者の1から「あーハイハイあれのことね」と
10も20も話を展開できるだけの話なのになって思う
悪い意味ではなくアスペなのかもしれない

275 名前:デフォルトの名無しさん mailto:sage [2020/07/28(火) 13:46:38.52 ID:S/4XVRLz.net]
>>264
そういうのはアスペではなく完璧主義と言う

276 名前:デフォルトの名無しさん mailto:sage [2020/07/28(火) 15:10:29.13 ID:oemm2Eov.net]
>>264
そういうひろがりんぐは
あるあるスレとか雑談スレでやれよ

277 名前:デフォルトの名無しさん mailto:sage [2020/07/28(火) 15:13:03.65 ID:r/RYJPdX.net]
>>264
これは脱初心者したばかりの中級者に有りがちな考え方

質問からあれこれ憶測するのは簡単
ただ経験を積めば積むほど初心者の質問であっても可能な限り憶測を排してニュートラルに解釈しようと努めることの大切さを理解するようになる

そこを理解してない人から見れば否定されることを恐れてるように見えるんだろうが、実際恐れてるのは自身が短絡的思考パターンに陥ることと相手に間違った結論に飛びつかせてしまうこと

278 名前:デフォルトの名無しさん [2020/07/28(火) 15:39:02 ID:XpAjM/1U.net]
>>249
マジレスするとそういうツールはあるが
Pythonを単純にC/C++に置き換えても
速くなる訳ではない
Pythonでnumpy使った方がマシだったりする

279 名前:デフォルトの名無しさん mailto:sage [2020/07/28(火) 17:28:39.81 ID:GczSHIqw.net]
>>264
どこのスレでもアスペみたいな回答者湧くけどそういうことか



280 名前:デフォルトの名無しさん mailto:sage [2020/07/28(火) 23:55:03.98 ID:NjbUIJIP.net]
>>267
結局のところ仕事でもなければ自分に影響しないところにいる奴からの質問に対しても慎重に答えてしまうのは
職業病もあるだろうが結局間違った解決策出して後から教えた奴に間違ってんじゃん大したことねーなと思われたくないからなのであながち間違っちゃいない

281 名前:デフォルトの名無しさん mailto:sage [2020/07/29(水) 01:06:27 ID:zUmFJLox.net]
いや、影響しないどうでもいいやつとほんとに思ってるなら大したことねーなと思われるのもどうでもいいと思う・・w
それに初心者スレの質問レベルでエスパー回答が立て続けに外れるなんて極稀なことだ
密室で一対一で問答してるわけでもないしスレの価値や利用者からすればスレの代謝が良いに越したことはない

282 名前:デフォルトの名無しさん mailto:sage [2020/07/29(水) 01:18:17.20 ID:YczEsKda.net]
言い過ぎだけどエスパーできない人の方がたいしたことねーなと思ってしまう
アキネイターじゃないけど、一発勝負じゃないわけだし
その過程で副産物もあるよね

283 名前:デフォルトの名無しさん mailto:sage [2020/07/29(水) 01:22:09.55 ID:4K5iZ0U7.net]
回答する側に問題がないとは言わないが9割5部以上は質問する側の問題
質問の仕方と聞く耳の持ち方

回答する側はスルー力が試される

284 名前:デフォルトの名無しさん mailto:sage [2020/07/29(水) 02:03:41.38 ID:w2wSnydH.net]
今回のやつも最初はそれなりにエスパーレスついてる

それに対して「そうじゃないんです、それはもうできてるんです、やりたいことはすでに書いてあります」って返すから答えるほうはだんだんイラついていってる

質問してるほうは本人的には理解してると思ってることを何度も回答されるし、やりたいことを繰り返し説明しても理解を示して貰えないからイラついてる

この状況でもっとエスパーしたらいいのにって感じるなら頭オカシイよ

285 名前:デフォルトの名無しさん mailto:sage [2020/07/29(水) 02:36:25.45 ID:d0wyjV5c.net]
エスパー回答自体はスレの代謝が上がるので良いと言えるが
エスパーするかどうかは自由なので同列に扱うのはそれこそ頭オカシイ

286 名前:デフォルトの名無しさん mailto:sage [2020/07/29(水) 02:44:49 .net]
エスパー回答は自由
もちろん慎重回答も自由

ただし初心者スレでは圧倒的にエスパー回答の解決率の方が高い現実w
確実な情報を得てから完璧に俺が解決してやる!と意気込む慎重派が抽象化能力に長けたエスパー回答者に先を越される
そういう嫉妬を産んでしまうのかも

287 名前:デフォルトの名無しさん mailto:sage [2020/07/29(水) 04:08:21.03 ID:QX+ttH81.net]
ヒソ( ´・д・)ヒソ(´・д・`)ヒソ(・д・` )ヒソ

288 名前:デフォルトの名無しさん mailto:sage [2020/07/29(水) 10:05:10.58 ID:8eN/BE+W.net]
python再入門(一度は挫折)したので、このスレでお世話になるかもしれません。
現段階で特に何も質問とかないんですが、決意表明として勝手に使わせていただきました。
あと、質問と回答のやり取りを見ていれば何か勉強になるかと思って・・・
失礼しました。

289 名前:デフォルトの名無しさん [2020/07/29(水) 10:20:44.09 ID:O/c273Wp.net]
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

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

クソチョンw

Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw

日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw



290 名前:デフォルトの名無しさん mailto:sage [2020/07/29(水) 13:03:30.41 ID:vEnVrtqV.net]
単発IDで荒らしてるのは質問者か

291 名前:デフォルトの名無しさん [2020/07/29(水) 13:12:25.02 ID:hY/5h1XO.net]
次はワッチョイ

292 名前:デフォルトの名無しさん [2020/07/29(水) 13:45:01.62 ID:R6rbFOBy.net]
>>278
まずは自分の意思で息を30分止められるようになってから出直せばいいよ

293 名前:デフォルトの名無しさん [2020/07/29(水) 13:50:49.07 ID:5HzgCMZ6.net]
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語

294 名前:学 国語 方言 など

simulationライブラリで純粋な関数式プログラミングをする
UIライブラリ (C#, 2D) を作ったよ
連続と離散を統一した!
4Dエンジン
matrixのライブラリ
ある強力なFor関数
SQLライブラリ

☆ VM + ASM を書いた (C#, DX) * x86 ではない!
ttp://up.x0000.net/files/TSimulang.zip
☆ malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip
[]
[ここ壊れてます]

295 名前:デフォルトの名無しさん [2020/07/29(水) 14:01:43.96 ID:1iAhPXaB.net]
はじめまして、写経の修行中のものですが、このプログラムにエラーが出ます
一時間ほど考えても何がダメかわからないので、ダメなところをご教授いただければ幸いです
#1 python3
# pw.py -パスワード管理プログラム(脆弱性あり)

PASSWORDS={'email':'F7minlBDDuvMJuxESSKHFhTxFtJVB6',
'blog':'VmALvQyKAxiVH5G8v0if1MLZF3sdt',
'luggage': '12345'}
import sys
import pyperclip

if len(sys.argv)< 2:
print('使い方:python pw.py[アカウント名]')
print('パスワードをクリップボードにコピーします')
sys.exit

account=sys.argv[1]

if account in PASSWORDS:
pyperclip.copy(PASSWORDS[account])
print(account+'のパスワードをクリップボードにコピーしました')
else:
print(account+'というアカウント名はありません')

エラーメッセージはこんな感じです
Traceback (most recent call last):
File "C:/Users/U/AppData/Local/Programs/Python/Python38-32/pw.py", line 15, in <module>
account=sys.argv[1]
IndexError: list index out of range
>>>
よろしくお願いします

296 名前:284 [2020/07/29(水) 14:05:25.20 ID:1iAhPXaB.net]
:の後の行のスペース4つ分抜けていますが、
自分が入力したやつはきちんとスペースがあります

297 名前:デフォルトの名無しさん mailto:sage [2020/07/29(水) 14:10:38.43 ID:4K5iZ0U7.net]
>>284
>if len(sys.argv)< 2:

len(sys.argv)が1だとしたら上の条件はfalse
長さ1だとsys.argv[0]は存在するけど
sys.argv[1]は存在しないのでindex out of range

298 名前:デフォルトの名無しさん [2020/07/29(水) 14:19:45.35 ID:1iAhPXaB.net]
>>286
ありがとうございます
account=sys.argv[1]を
account=sys.argv[0]
にするとエラーなく動きましたが、
本は1になっているので誤植?かもしれないですね
回答したいただいた内容も把握できないので、
もう少し勉強します...

299 名前:デフォルトの名無しさん mailto:sage [2020/07/29(水) 14:26:21.78 ID:4K5iZ0U7.net]
>>286
あれ? おかしなこと書いてた
len(sys.argv)が1ならFalseじゃなくTrueだわ

起動するときにaccount名を引数で渡してないのとインデントの問題かもね
$ python pw.py account_name



300 名前:デフォルトの名無しさん mailto:sage [2020/07/29(水) 14:38:39.66 ID:4K5iZ0U7.net]
sys.exitできてないのが原因だね
sys.exitをsys.exit()に






[ 続きを読む ] / [ 携帯版 ]

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

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