20/07/26 18:26:17.92 RfjORUiz.net
>>206
ゴリ押しで動くコードはもう完成してるし動くので作業には支障ないんです>199
(もしかするとコードが書かれたurlが下の方なので見えない人がいるかもしれない?URLリンク(ideone.com))
今はその先の段階で、もっと賢く書けないだろうか?
という段階です
215:デフォルトの名無しさん
20/07/26 18:52:31.09 v4XWgY9j.net
必要性緊急性のない戯言に付き合う暇な奴はいねえよ
216:デフォルトの名無しさん
20/07/26 18:54:38.20 RfjORUiz.net
例えば>199の
>(該当したファイル分だけコールバックが保管されてるところとか)
これの改善策は自レスになりますが
globalsを使えば、dataに入れるのはコールバック名(str型)だけでよくなります
def func():
_print('func()')
globals()['func']()
でも初心者の私は、コールバック名(単なるテキスト)から関数が実行できる、という
そもそもそこを知らなかったので、そういうアイデアが出るまで時間かかりました
(ただその後、そもそもコールバック関数名のテキストだけ入れた場合と、コールバック関数を入れた場合とでそんなに差があるのか?という疑問もわきました)
おそらく上級者の人はこの辺の把握力とか改善スピードがすごいのでしょうね
217:デフォルトの名無しさん
20/07/26 19:11:40.36 zo3nbSYT.net
変に質問加工するよりも、課題をそのまま書き込んでくれ
218:デフォルトの名無しさん
20/07/26 19:25:32.76 RfjORUiz.net
課題・・?
よくわかりませんがもしかすると>199でそもそも何をしたいのかが
伝わってなかったっぽい・・?
自分で客観的に>199を見て簡単にまとめるとすれば
'''
任意のディレクトリ内で複数のフィルター検索をし
それぞれのフィルターに対応したコールバック関数を
該当ファイルすべてに対して実行する
ただしコールバック実行のタイミングは、検索終了後とする
'''
みたいな感じでしょうか
内容自体はかなり簡単だと思います
初心者の自分ですら必要十分まではこぎつけたので
219:デフォルトの名無しさん
20/07/26 20:39:49.64 T8T+tUZ4.net
アホだ
220:デフォルトの名無しさん
20/07/26 21:24:04.96 Q1iiyZri.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
221:デフォルトの名無しさん
20/07/26 22:24:27.47 T2XYMYOv.net
>>211
単純に条件にマッチするファイル名のリスト(もしくはイテレータ)を生成して
それに対して関数を適用するほうがずっとシンプルだと思うけど
それだと何か不都合があるの?
条件1にマッチするリストを生成 -> 関数1を適用
条件2にマッチするリストを生成 -> 関数2を適用
条件3にマッチするリストを生成 -> 関数3を適用
222:デフォルトの名無しさん
20/07/26 22:31:56.65 Lwmxod4b.net
どーも!マッチでーす!
223:デフォルトの名無しさん
20/07/27 00:26:48.90 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) …②
みたいな形にしていました
しかしcallbackの内容次第ではファイルが消えたりするので
条件12それに対応する関数12の依存関係が強いなと気付き
lst12 = filter_search(['条件1','条件2']) #対応するcallbackを与える or lst12を再帰させる
みたいに、あえて依存関係を作った方がいいかな?と
(しかし>199のようにcallback割当が野暮ったくなる・・みたいな結果に)
”非同期的にファイルが消えたりリネームされる?されても大丈夫?”という部分がスッキリすれば
(特に大量のファイル数を扱うわけでもないし)214さんの方法や①、②の方法を取っていたとおもうし
そうでなくとも、コメントアウトで説明入れとけばいいのでは?とも思います
ただ、上手い感じに依存関係をコードの視覚的にパッケージできないだろうかとも思ったのです
224:デフォルトの名無しさん
20/07/27 00:38:37.88 sO2/nmC+.net
pyinstallerって全てのライブラリに対応しているわけじゃないんだね。
まあ、当たり前といえば当たり前だが。。。
うまく実行ファイルできればラッキーというところか。。。
225:デフォルトの名無しさん
20/07/27 00:40:44.65 DIwwuwRf.net
ただ214さんのおっしゃる通りイテレータを使えば
条件の依存関係を保ったまま視覚的な表現ができそうです
一度それでやってみようかと思います
226:デフォルトの名無しさん
20/07/27 01:52:08.88 TQCIWmFu.net
>>216
>しかしcallbackの内容次第ではファイルが消えたりするので
>条件12それに対応する関数12の依存関係が強いなと気付き
>lst12 = filter_search(['条件1','条件2']) #対応するcallbackを与える or lst12を再帰させる
>みたいに、あえて依存関係を作った方がいいかな?と
なるほど、わからん
ファイル消す処理をしてるなら消えて何が困るのか?
依存関係??
全体的に無理に難しい言葉を使おうとしてる印象を受ける
コードもそれと全く同じで無理に難しくしてる印象を受ける
227:デフォルトの名無しさん
20/07/27 02:13:07.40 cBvHge2x.net
>>219
頭の悪い本当の馬鹿は内容を理解せずあちこちからコピペするだけだからこうなる。
ゆとり世代に多い。
228:デフォルトの名無しさん
20/07/27 07:31:32.20 Yw3HzFpa.net
>>218
exeにするときに引数ふやして自分で足そう
229:デフォルトの名無しさん
20/07/27 08:30:59.36 DIwwuwRf.net
>>219
>何が困るのか?
普通に>216①②のパターンで何も困らないし自分も基本そうしてます
以前ここかどこかで質問したとき
再帰中に消すのはなぁ、みたいな意見が一定数あったので
自分でもファイル一括処理方法のサイトをいくつか調べてみましたが
特に気にしているようなコードはみかけませんでした
それもあって単に、
#---- 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:デフォルトの名無しさん
20/07/27 09:56:15.59 rtutVcR3.net
>>222
自分もそういうタイプなので敢えての小言
mp4とmovを振り分けるのに引数にする必要も正規表現使う必要もないですよね。
いやそこは簡略化した例だから、やりたいことを察してピンポイントで助言がほしいというつもりなんだろうけど、それってすごい偉そうな物言いで、助言をもらうのは厳しいと思います、必要ないことやろうとしてるようにしか見えませんから。
といってもそういうセンサーはついてないのだと思うし、そもそもあなたは自分で解決しないと納得できないタイプですから、人には聞かず自分で探し出しましょう。
231:デフォルトの名無しさん
20/07/27 10:30:12.06 DIwwuwRf.net
>人には聞かず自分で探し出しましょう
繰り返しになりますが、
”コードは野暮ったくても実用できるまで”
は解決はしてるんです
ただ、もっと書き方を良くできないだろうか
という点が質問した一番の意図です
その先も自分で探し出しましょうとなると
このスレの存在意義は?とちょっと疑問に思います
(もちろん自分でも探しています)
>199,211でも書いてあるように
>ただしコールバック実行のタイミングは、検索終了後とする …①
なんですよね
しかし今のところ
”検索中、同時進行でコールバック実行(ファイル処理)”
してしまえば問題なく書ける、についての返答なんです
しかし質問の前提は①
要するに①をやらない書き方をしましょう、という提案なんですよね
①をやらない方法は自分自身>216で通過済みで、それがあっての
232:①>199なんです そこでループしてるなと感じますね >必要ないことやろうとしてるようにしか見えませんから 複数条件検索の全部終了後の全ファイルパス取得を取得し それぞれの条件に対応した関数を実行する ファイル検索に限らずこの部分はほんとに不必要なのかな、とは個人的には思います
233:デフォルトの名無しさん
20/07/27 10:55:32.33 nBoSZwLd.net
書き方がウザい。
234:デフォルトの名無しさん
20/07/27 11:22:10.97 FO4znkcB.net
コールバック実行の方法を現役エンジニアが解説【初心者向け】
235:デフォルトの名無しさん
20/07/27 13:41:39.26 RLaVSjh7.net
コールバックにする理由が1mmもないことにワロタ
複数条件考えるなら条件の優先順位考えて上から実行するだけ
最後にやりたいってことは条件の衝突を管理したいようだけど、今の調子だとバグの温床になるぞ
処理の一つ一つは疎結合にして上から順に処理すべき
236:デフォルトの名無しさん
20/07/27 13:44:15.00 Hxb31aUu.net
ゆとり教育の馬鹿に何を教えても無駄だと思う
237:デフォルトの名無しさん
20/07/27 14:14:30.78 km+HDXw6.net
>>200
レスしてる人も同じ人
238:デフォルトの名無しさん
20/07/27 14:17:57.57 EH5Hzntf.net
mp4とmovで重複してるからどちらか片方を消したい、とかじゃないの
そもそものやりたいことが一切書かれてないからこれ以上は何も出てこない
howは出てくるけど肝心要のやりたいことが一切出てきてないでしょ
なら出てくるコードに対しては「はいそうですね」としか言いようが無い
一番トップのメインの主題が隠されてるから、こちらが提案しても「それは違うこれも違う」言ってる小出し人間だ
コレ、外側の他人から見るとお気持ちだけで否定してるクズにしか見えない
239:デフォルトの名無しさん
20/07/27 14:19:43.25 k4QGTEdc.net
やりたいことも実行できるコードも書かれている件
240:デフォルトの名無しさん
20/07/27 14:23:54.22 TQCIWmFu.net
>>222
>条件2='条件1依存の条件'
これ例えばどんなの?
.mp4と.movの例は依存してないよね?
241:デフォルトの名無しさん
20/07/27 14:32:03.41 DIwwuwRf.net
>条件2='条件1依存の条件'
例えば条件1でヒットしたファイル名だとか
読み取った内容だったりとかで条件2の解釈も変わるときとか
NOT検索とか
ヒットしたら条件1でヒットしたファイルをやっぱり操作しないとか(これは条件を逆にすればいいだけですが)
まだありそうです
242:デフォルトの名無しさん
20/07/27 14:55:14.45 TQCIWmFu.net
>>233
日本語ももうちょっと整理してくれないと読むのがしんどい
> 「条件1でヒットしたファイル名だとか読み取った内容だったりとか」で条件2の解釈も変わるとき
↑これだと「条件1の検索結果に条件2が依存してる」と言ってるのと大差ないからわからないよ
前段の処理次第で解釈が変わる条件と言ってるものが具体的にどういうものを想定しているかを聞いてる
243:デフォルトの名無しさん
20/07/27 15:04:59.86 TQCIWmFu.net
>>227
>処理の一つ一つは疎結合にして上から順に処理すべき
これ大事
244:デフォルトの名無しさん
20/07/27 15:06:42.77 DIwwuwRf.net
>>234
>条件1の検索結果に条件2が依存してる
はその通りの意味でいいと思います
条件1,2は単なるstr型とも限らないので
で、>227さんの言う>処理の一つ一つは疎結合にして上から順に処理すべき
はもちろんのことで、それはもうできたんです
しかし手続き的に条件1とか条件2とか定義するコードの見た目とのトレードオフだと思い
そこでとりあえず>233などいろいろなフィルタを経て、条件に一致するファイルだけをリスト化して
あとでまとめて処理しよう、という形でやってみようという流れがあります
245:デフォルトの名無しさん
20/07/27 15:37:04.74 hnjNWdgG.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
246:デフォルトの名無しさん
20/07/27 16:13:55.58 Yw3HzFpa.net
>> ID:DIwwuwRf
(・∀・)カエレ!!!
247:デフォルトの名無しさん
20/07/27 17:34:24.82 AMGxP3t5.net
>>224
このスレの存在意義は質問ですが、あなたは(私も)人の意見を聞くことのできない人種なので、聞いても無駄です。無駄につきあわされる人は腹を立てます。
もしまだ本心から人の意見が聞きたいと思っていると思うなら、下手な抽象
248:化をせず、ソースコード全部公開することをおすすめします。
249:デフォルトの名無しさん
20/07/27 18:03:09.97 DIwwuwRf.net
>>239
>199と>207でめちゃくちゃ公開しているんですが・・
で、>人の意見を聞くことのできない
の全く逆で”人の意見を聞いて”それをヒントに、数レス後に自己解決に近いとこまではきたんです
>209とか>216あたりです(結局、クラス化すればglobalsなんて要りませんでしたが)。
それからは、もう最初の質問の意図と全く違う方向で
逆質問みたいになってなぜかこちらが用途について説明してる感じになってるんですよね
なぜファイルをあとで処理するのかとか、なぜコールバックにするのだとか
そこから派生した以降のやり取りってもう質問でもなんでもなく別の雑談だと思いますよ
質問の本質は単に
ファイル検索がすべて終わった後にリスト化して、まとめて最後に処理をする
であったわけで、こういう汎用シーンって結構あると思うんですよ
で上級者の方ならリスト化のテクニックもそれだけ経験豊富なわけですよね
しかし返ってきたのはそもそもの
リスト化や検索後の処理の必要性について
え?そこから?みたいな突っ込みをされて正直なところ不思議な感覚でした
250:デフォルトの名無しさん
20/07/27 18:07:27.24 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:デフォルトの名無しさん
20/07/27 18:10:20.11 TQCIWmFu.net
>>236
具体例を聞いてるんだけど?
ないの? それとも出せないの?
252:デフォルトの名無しさん
20/07/27 18:19:39.51 DIwwuwRf.net
それは”条件”というワードがどこから始まったかをたどれば自ずと答えは出てくると思いますよ
253:デフォルトの名無しさん
20/07/27 18:54:48 TQCIWmFu.net
日本語のコミュニケーションに難があって
君が何を求めてるのかわからないから抽象度を下げて具体例を聞いてるんだけど
それも説明できないようなのでもう諦めるわ
254:デフォルトの名無しさん
20/07/27 19:11:26 DIwwuwRf.net
求めている(いた)のは繰り返しになりますが>199や>211ですよ
具体例もソースコードも誰がどう見てもめちゃくちゃハッキリと書いてあります
>1テンプレ推奨のurlも使ってます
255:デフォルトの名無しさん
20/07/27 19:46:34.94 RLaVSjh7.net
>>241にある「ファイル検索がすべて終わった後にリスト化して、まとめて最後に処理をする」だけだったはずなのに話が難しく感じるのは何故だろう
俺もやるならメソッドチェーンかなぁ、優先順位が明
256:確だしね そうするとクラス化するだろうから、コールバックじゃなくて一連のシンプルな処理をメソッドとして実装するかな .move(条件1).delete(条件2).rename(条件3)
257:デフォルトの名無しさん
20/07/27 20:37:43.78 TQCIWmFu.net
>>246
>.move(条件1).delete(条件2).rename(条件3)
条件1を満たしたファイルをmoveして
moveした結果のうち、さらに条件2を満たしたファイルをdeleteして
deleteした結果のうち・・・renameできねぇ・・・
例だからrenameできないのはいいとして
意図としては上に書いたイメージ?
258:デフォルトの名無しさん
20/07/27 20:49:03.20 RLaVSjh7.net
>>246
もちろん適当
259:デフォルトの名無しさん
20/07/27 20:55:23.93 7UNR98vA.net
PythonのコードをC++に変換するようなツール出てこないかなぁ
Python遅すぎるわ
260:デフォルトの名無しさん
20/07/27 21:06:00.74 H1Q/Au4r.net
プロジェクト始めるときにどの言語が適切か検討しろよ…
261:デフォルトの名無しさん
20/07/27 21:13:31.93 RLaVSjh7.net
>>249
そんなお前はrustかjuliaに行った方が幸せだぞ
262:デフォルトの名無しさん
20/07/27 21:13:34.28 2I3xUck9.net
サイトハッキングて意外と簡単やな
URLリンク(re-file.com)
263:デフォルトの名無しさん
20/07/27 21:29:56.95 TQCIWmFu.net
>>248
そっか
まあ>>246の例だとメソッドチェーンにする意味ないもんね
264:デフォルトの名無しさん
20/07/27 21:36:32.37 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:デフォルトの名無しさん
20/07/27 22:40:22.24 P2Gsimd7.net
そもそも、そんな複雑な、2つ以上の条件があるものを、直接削除してはならない!
絶対に、ロールバックできないから
本当は、別のフォルダに、全く同じフォルダ階層を作って、
そこへ削除するものを移動するのが正しい。
その後、検証してから削除するか、そのまま保存しておく
または、すべての階層を丸ごとコピーして、バックアップを作ってから、試すとか
繰り返し途中で削除するのは、非常に危険!
途中でエラーになったら、そこまで処理した分だけが削除されてしまう
データベースで言う、一貫性がなくなるので、ロールバックできない状態になる。
全てが正常終了するか、または、途中でエラーが出たら、すべてが元通りになるべき
高機能なアプリでは、ロールバックできるように作っている
266:デフォルトの名無しさん
20/07/27 23:56:31 UIY75t8S.net
珍しくruby厨がまともなことを言っている
削除は戻せないから削除候補ディレクトリに入れるとかして別タイミングで削除ってのは確かによく使う手だな
267:デフォルトの名無しさん
20/07/28 00:14:18 M5Qb6v84.net
個人用途ならRecycleBinやTrashに入れる処理をdeleteってことにすれば十分
販売するようなデスクトップアプリならUndo含めて考えるけどそういうのはpythonでは作らない
途中でエラーが出たら元通りにすべきかどうかも仕様次第
DBと違ってファイルシステムの場合は100%元通りには出来ないケースが出てくる
268:デフォルトの名無しさん
20/07/28 00:58:34.57 8RKB8VPn.net
PyScripterでデバッグした時のローカルファイルのパス指定ってどうなってるの?
例えばhoge.py、hoge.mp3が同じディレクトリにあって
hoge.py内でhoge.mp3を再生する時パス名を'hoge.mp3'にすると
コマンドラインでは正常に再生されるけど
PyScripterのデバッグ実行だとWinError6のエラーになる
269:デフォルトの名無しさん
20/07/28 01:41:42 kkkGcMlI.net
>>258
getcwdでカレントディレクトリをチェックしたらどうかな。
スクリプトのパスはなんかで取れるから、そこからの相対パスと合成するって手もあるよ
270:デフォルトの名無しさん
20/07/28 08:32:36.71 XiTafywX.net
PyScripterに、スクリプト実行するときにそこにcdするって設定ないのかな?
271:デフォルトの名無しさん
20/07/28 09:09:57.39 OeNaj/pH.net
要約すると、さしあたって必要はないけどスマートなプログラムを書きたいので上級者の人に無料で添削してほしいということです
272:デフォルトの名無しさん
20/07/28 10:06:58 oemm2Eov.net
>>260
自分で作っとけ がんがれ
>>261
×上級者
◎俺様の脳内をエスパーできる超能力者かつPythonにも詳しいSSRカード並みの誰か
273:デフォルトの名無しさん
20/07/28 11:59:28.75 yFFEeJhJ.net
絶対パス指定じゃ駄目なんか
274:デフォルトの名無しさん
20/07/28 13:15:28.49 8dcNMYlA.net
プログラミングスレあるあるだけど
抽象的な質問があると回答→否定されることに怯えている回答者って一定数いるよね
間違えているわけでもないのに妙に回答失敗に怯えているというか
回答が質問者に合わなかったとしても、スレ的には周りから見れば財産にしかならない
上級者であればあるほど質問者の1から「あーハイハイあれのことね」と
10も20も話を展開できるだけの話なのになって思う
悪い意味ではなくアスペなのかもしれない
275:デフォルトの名無しさん
20/07/28 13:46:38.52 S/4XVRLz.net
>>264
そういうのはアスペではなく完璧主義と言う
276:デフォルトの名無しさん
20/07/28 15:10:29.13 oemm2Eov.net
>>264
そういうひろがりんぐは
あるあるスレとか雑談スレでやれよ
277:デフォルトの名無しさん
20/07/28 15:13:03.65 r/RYJPdX.net
>>264
これは脱初心者したばかりの中級者に有りがちな考え方
質問からあれこれ憶測するのは簡単
ただ経験を積めば積むほど初心者の質問であっても可能な限り憶測を排してニュートラルに解釈しようと努めることの大切さを理解するようになる
そこを理解してない人から見れば否定されることを恐れてるように見えるんだろうが、実際恐れてるのは自身が短絡的思考パターンに陥ることと相手に間違った結論に飛びつかせてしまうこと
278:デフォルトの名無しさん
20/07/28 15:39:02 XpAjM/1U.net
>>249
マジレスするとそういうツールはあるが
Pythonを単純にC/C++に置き換えても
速くなる訳ではない
Pythonでnumpy使った方がマシだったりする
279:デフォルトの名無しさん
20/07/28 17:28:39.81 GczSHIqw.net
>>264
どこのスレでもアスペみたいな回答者湧くけどそういうことか
280:デフォルトの名無しさん
20/07/28 23:55:03.98 NjbUIJIP.net
>>267
結局のところ仕事でもなければ自分に影響しないところにいる奴からの質問に対しても慎重に答えてしまうのは
職業病もあるだろうが結局間違った解決策出して後から教えた奴に間違ってんじゃん大したことねーなと思われたくないからなのであながち間違っちゃいない
281:デフォルトの名無しさん
20/07/29 01:06:27 zUmFJLox.net
いや、影響しないどうでもいいやつとほんとに思ってるなら大したことねーなと思われるのもどうでもいいと思う・・w
それに初心者スレの質問レベルでエスパー回答が立て続けに外れるなんて極稀なことだ
密室で一対一で問答してるわけでもないしスレの価値や利用者からすればスレの代謝が良いに越したことはない
282:デフォルトの名無しさん
20/07/29 01:18:17.20 YczEsKda.net
言い過ぎだけどエスパーできない人の方がたいしたことねーなと思ってしまう
アキネイターじゃないけど、一発勝負じゃないわけだし
その過程で副産物もあるよね
283:デフォルトの名無しさん
20/07/29 01:22:09.55 4K5iZ0U7.net
回答する側に問題がないとは言わないが9割5部以上は質問する側の問題
質問の仕方と聞く耳の持ち方
回答する側はスルー力が試される
284:デフォルトの名無しさん
20/07/29 02:03:41.38 w2wSnydH.net
今回のやつも最初はそれなりにエスパーレスついてる
それに対して「そうじゃないんです、それはもうできてるんです、やりたいことはすでに書いてあります」って返すから答えるほうはだんだんイラついていってる
質問してるほうは本人的には理解してると思ってることを何度も回答されるし、やりたいことを繰り返し説明しても理解を示して貰えないからイラついてる
この状況でもっとエスパーしたらいいのにって感じるなら頭オカシイよ
285:デフォルトの名無しさん
20/07/29 02:36:25.45 d0wyjV5c.net
エスパー回答自体はスレの代謝が上がるので良いと言えるが
エスパーするかどうかは自由なので同列に扱うのはそれこそ頭オカシイ
286:デフォルトの名無しさん
20/07/29 02:44:49 .net
エスパー回答は自由
もちろん慎重回答も自由
ただし初心者スレでは圧倒的にエスパー回答の解決率の方が高い現実w
確実な情報を得てから完璧に俺が解決してやる!と意気込む慎重派が抽象化能力に長けたエスパー回答者に先を越される
そういう嫉妬を産んでしまうのかも
287:デフォルトの名無しさん
20/07/29 04:08:21.03 QX+ttH81.net
ヒソ( ´・д・)ヒソ(´・д・`)ヒソ(・д・` )ヒソ
288:デフォルトの名無しさん
20/07/29 10:05:10.58 8eN/BE+W.net
python再入門(一度は挫折)したので、このスレでお世話になるかもしれません。
現段階で特に何も質問とかないんですが、決意表明として勝手に使わせていただきました。
あと、質問と回答のやり取りを見ていれば何か勉強になるかと思って・・・
失礼しました。
289:デフォルトの名無しさん
20/07/29 10:20:44.09 O/c273Wp.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
290:デフォルトの名無しさん
20/07/29 13:03:30.41 vEnVrtqV.net
単発IDで荒らしてるのは質問者か
291:デフォルトの名無しさん
20/07/29 13:12:25.02 hY/5h1XO.net
次はワッチョイ
292:デフォルトの名無しさん
20/07/29 13:45:01.62 R6rbFOBy.net
>>278
まずは自分の意思で息を30分止められるようになってから出直せばいいよ
293:デフォルトの名無しさん
20/07/29 13:50:49.07 5HzgCMZ6.net
学術の巨大掲示板群 - アルファ・ラボ URLリンク(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:デフォルトの名無しさん
20/07/29 14:01:43.96 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
20/07/29 14:05:25.20 1iAhPXaB.net
:の後の行のスペース4つ分抜けていますが、
自分が入力したやつはきちんとスペースがあります
297:デフォルトの名無しさん
20/07/29 14:10:38.43 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:デフォルトの名無しさん
20/07/29 14:19:45.35 1iAhPXaB.net
>>286
ありがとうございます
account=sys.argv[1]を
account=sys.argv[0]
にするとエラーなく動きましたが、
本は1になっているので誤植?かもしれないですね
回答したいただいた内容も把握できないので、
もう少し勉強します...
299:デフォルトの名無しさん
20/07/29 14:26:21.78 4K5iZ0U7.net
>>286
あれ? おかしなこと書いてた
len(sys.argv)が1ならFalseじゃなくTrueだわ
起動するときにaccount名を引数で渡してないのとインデントの問題かもね
$ python pw.py account_name
300:デフォルトの名無しさん
20/07/29 14:38:39.66 4K5iZ0U7.net
sys.exitできてないのが原因だね
sys.exitをsys.exit()に
301:デフォルトの名無しさん
20/07/29 14:41:04.91 1iAhPXaB.net
ありがとうございます
用事が入ったので、後で試してみます!
302:デフォルトの名無しさん
20/07/29 14:41:14.58 1iAhPXaB.net
ありがとうございます
用事が入ったので、後で試してみます!
303:デフォルトの名無しさん
20/07/29 21:44:40.57 1iAhPXaB.net
>>289
正解でした
ありがとうございます
304:デフォルトの名無しさん
20/07/29 23:38:11.02 8eN/BE+W.net
x = 0 % 3
print(x)
こうすると0が出力されるのですが、0を分子にして計算した場合にエラーにならないのはなぜでしょうか。
(0で割る、ではなくて、0を割る、という話です。)
pythonはそういうもの、ということでしょうか?
305:蟻人間
20/07/29 23:44:14.26 hGtKVe2E.net
ゼロを三等分したらゼロだろ?
306:蟻人間
20/07/29 23:45:06.50 hGtKVe2E.net
余りがあるとすれば、割り切れているから、余りもゼロ。
307:デフォルトの名無しさん
20/07/29 23:46:16.77 vEnVrtqV.net
0の除算を勘違いしているな
308:デフォルトの名無しさん
20/07/29 23:47:06.32 R6rbFOBy.net
>>293
30分息を止めてから書き込めよ
309:デフォルトの名無しさん
20/07/29 23:48:08.36 BvcXBHVA.net
>>293
死ねよ
310:デフォルトの名無しさん
20/07/29 23:50:15.20 g8VChgQY.net
>>293
知的障害者なの?
311:デフォルトの名無しさん
20/07/30 00:07:26.78 DmQX4FWT.net
0で割ることが出来ないのはわかっていたのですが、「0を割ることが出来ない」って書いてあるサイトがあったので質問させていただきました。
別に普通に出来るんですね。
イライラさせてしまってすみません。
312:デフォルトの名無しさん
20/07/30 00:31:33.86 dwR6WWhB.net
釣り師としては、なかなかの腕前だと思うよ
313:デフォルトの名無しさん
20/07/30 04:49:46.10 /HO6WTwJ.net
314:ギリ健っていうジャンル
315:デフォルトの名無しさん
20/07/30 05:05:11.24 LvOSdG4W.net
python3.7.6 windows10 anaconda3
Qt designer5.9.7で作成したuiファイルをpyファイルに変換したいです。コマンドプロンプトで下記のエラーが出ます。
C:\Users\・\Desktop>pyuic5 test.ui -o test.py
'pyuic5' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
どうすれば変換できるでしょうか。ど素人です。
316:デフォルトの名無しさん
20/07/30 05:14:06 LvOSdG4W.net
↑すみません自己解決しました。
環境変数で登録したpathが間違えてました。
317:デフォルトの名無しさん
20/07/30 05:31:37 EKK/+ooC.net
__truediv__を使えば/演算子を使って0で割ったように見せることができる(文字列)
class slash(object):
_def __init__(self,s):
__self.s = s
_def __truediv__(self, other):
__return [self.s[:other],self.s[other:]]
print(slash('abcdefghi') / 1)
print(slash('abcdefghi') / 2)
print(slash('abcdefghi') / 0)
>>
['a', 'bcdefghi']
['ab', 'cdefghi']
['', 'abcdefghi']
318:デフォルトの名無しさん
20/07/30 05:34:55 EKK/+ooC.net
文字列/2は文字列を半分にすると混同するのであまり使えない
319:デフォルトの名無しさん
20/07/30 05:41:56.77 EKK/+ooC.net
print( pjoin('/foo') / bar / a.txt )
>> ./foo/bar/a.txt
これは割りと使える
320:デフォルトの名無しさん
20/07/30 07:30:13.54 cH8Va6i2.net
でも0を0で割ると1にならないでエラーになるのは何故?
321:デフォルトの名無しさん
20/07/30 07:43:39.56 RHK/Swp/.net
>>308
それは1を含めてあらゆる数が正解になるから
1だけが答えではない
322:デフォルトの名無しさん
20/07/30 08:52:09.57 fgUB+Eh5.net
チャック・ノリス以外にはできないから
323:デフォルトの名無しさん
20/07/30 09:21:57.64 fO1gE2oV.net
>>300
>0を割ることは出来ない
数学的には間違ってるけど、日本語としては必ずしも間違ってるとは言えないとは思うわ
324:デフォルトの名無しさん
20/07/30 09:31:00.66 LkTU5YsJ.net
0÷2=()
325:デフォルトの名無しさん
20/07/30 14:19:45.93 tKwbyxTK.net
>>308
それは0の除算だから
326:デフォルトの名無しさん
20/07/30 17:24:36 grEa/bDf.net
そういえば、Pythonnだと
1.0 / 0 = Infinity
0.0 / 0 = NaN
にならないな。
327:デフォルトの名無しさん
20/07/30 17:30:54 fgUB+Eh5.net
そもそも1/0も無限でもないしな
未定
328:デフォルトの名無しさん
20/07/30 17:37:35 +IR+ealO.net
>>315
1/0.1
1/0.0001
1/0.000000000000000001
1/0.0000000000000000000000000000001
どう考えても無限大に発散するだろ
329:デフォルトの名無しさん
20/07/30 17:40:43 EPvquY9v.net
NaN と Infinity は別物
330:デフォルトの名無しさん
20/07/30 17:48:26.97 +IR+ealO.net
逆に
0.1 /1
0.0001 /1
0.000000000000000001 /1
0.0000000000000000000000000000001 /1
0/1 は限りなく0だろ
331:デフォルトの名無しさん
20/07/30 17:54:42.04 Wsw+dL9C.net
限りなく黒に近いグレー
332:デフォルトの名無しさん
20/07/30 18:17:22 +IR+ealO.net
>>314
JavaScriptはなるわ
1/0=Infinity
0/1=0
0/0=NaN
333:デフォルトの名無しさん
20/07/30 19:35:21 QVyQvPPs.net
>>316
+のほうの極限は∞だけど、
-のほうの極限は-∞
だから定まらない
334:デフォルトの名無しさん
20/07/30 19:39:00 d5UDzlex.net
25の平方根になるのは5で、google電卓の場合は√25で5が答えとして出ますです
windows関数電卓の場合はどうやるんどすか?
335:デフォルトの名無しさん
20/07/30 19:44:19 bchcTqvk.net
初心者なのですが質問させてください。
明日から夏休みで彼女と泊りがけで熱海に旅行に行きます。
うまくリードするためのコツとかありませんか?
なるべくコールバックは使いたくありません
336:デフォルトの名無しさん
20/07/30 19:47:14 DFjeaZjZ.net
>>321
>>314
JavaScriptでは
1/+0 = Infinity
1/-0 = -Infinity <
337:デフォルトの名無しさん
20/07/30 20:17:39.16 SHrdySLu.net
>>322
Windows 10 で関数電卓を使う
URLリンク(support.microsoft.com)
>>323
>>1【まず1嫁】
338:デフォルトの名無しさん
20/07/30 20:38:06.47 Whj+h8x1.net
>>311
2+0 0を足す
2-0 0を引く
2*0 0を掛ける
2/0 0「で」割る
ややこしや
339:デフォルトの名無しさん
20/07/31 01:05:01.96 AWCTGfyP.net
py2appで作成したアプリって,どうしてサイズが大きくなってしまうのでしょうか?
サイズを小さくする方法はないのでしょうか?
340:デフォルトの名無しさん
20/07/31 01:14:57 NLLSCNEk.net
Pythonは悪魔手スクリプトでインタープリタが実行してるのに対して
マックドナルドなネイティブアプリにコンパイルして実行ファイルになるんだからアタリメクラッカー
341:デフォルトの名無しさん
20/07/31 01:18:00 AWCTGfyP.net
>>328
なんとなーく分かりました
たしかにpythonベースのアプリ全般,容量が大きい気がします
諦めるしかないんですね…
342:デフォルトの名無しさん
20/07/31 01:33:19.73 PQssP+wa.net
Pythonスクリプトで作らずに
直接Objective-CかSwiftで開発すればええんやで
343:デフォルトの名無しさん
20/07/31 03:35:20 FfqYSIT0.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
344:デフォルトの名無しさん
20/07/31 12:36:48 AOnpFiBz.net
pythonの次はGoかRustにいきなさい
345:デフォルトの名無しさん
20/07/31 13:30:28 GxmlUbA1.net
サンマーク出版の書籍タイトルみたいだなwww
346:デフォルトの名無しさん
20/08/01 10:54:24 ul3104AO.net
ソース(サイトから拾ってきてるので間違いは多分ない)は数行でエラーコードが長いものの質問したいのですがありですか?環境の問題だと考えて入るのですが。
エラーコード長すぎてスレに貼れないのでその場合どうするといいですか?
347:デフォルトの名無しさん
20/08/01 10:58:38 tTe6cA/F.net
>>334
スクショ取ってImgur辺りにアップロードして
ここにリンク張ればとりあえず見れる
348:デフォルトの名無しさん
20/08/01 11:03:13 biQ1QRTH.net
おーい>>1読んでっかー?
349:デフォルトの名無しさん
20/08/01 13:26:25.86 GZTqAP90.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
350:デフォルトの名無しさん
20/08/01 17:32:56.81 TxHAnvn8.net
>>334
335がうそついてるので
>>1嫁
351:デフォルトの名無しさん
20/08/01 23:12:33 qVnOzDD7.net
スクレイピングの本で一番のおすすめは何でしょうか?
これからpython2年生をやる予定です
オライリージャパンのセンザンコウが表紙のはクソみたいなのでやめました
352:デフォルトの名無しさん
20/08/01 23:22:09 cVk77Hxz.net
互換性がないからpython3年生から始めなさい
353:デフォルトの名無しさん
20/08/02 00:33:55.29 OrrTO0fy.net
>>339
評価見たらホントにクソっぽいな
354:デフォルトの名無しさん
20/08/02 04:44:26.68 yz3gxwYF.net
>>339
それである程度基礎が理解できるようになってきたら
次は中級者向けで広く浅いライブラリ紹介にとどまるけど
「Pythonによるスクレイピング&機械学習 開発テクニック BeautifulSoup,scikit-learn,TensorFlowを使ってみよう 」クジラ飛行机
なんてのはどうでしょう?
自分のやりたい事とマッチングするのが
355:見つかるかも?
356:デフォルトの名無しさん
20/08/02 09:39:52.63 dNbCIXPQ.net
うちもスクレイピングしたくて本買ったけど、結局ネットで調べてる情報でやりたいこと完成したから1ページも読まないまま置いてある
目的が先に達成されてしまうとやる気がおきん…
357:339
20/08/02 09:40:46.16 E4bEQw/0.net
回答ありがとうございます
とりあえずpython 2年生やって、342さんのをやってみますね
ちなみに今は面倒くさいことはpython にやらせようをやっています
これも結構難しいです
理解には三カ月ぐらいかかりそう
358:デフォルトの名無しさん
20/08/02 10:24:29.39 VdhKDmoH.net
純粋にスクレイピングがやってて面白くない。
ほとんどテクニックだけの世界で。
その点ではWebサーバサイドも似ているけど、こっちはまだ作る楽しみがある。
359:デフォルトの名無しさん
20/08/02 12:29:39 uvJ0AhRU.net
>>339
pythonのマニュアル
どうしてみんなマニュアルを読まないんだろうね
一番ちゃんと書いてあるのに
360:デフォルトの名無しさん
20/08/02 13:50:34.99 A/1sqmpg.net
スクレイピングやるならPythonよりJavascript読めるようになる方が重要だよ
361:デフォルトの名無しさん
20/08/02 15:30:53.14 uiYqbxLc.net
jsとcssセレクタだね。大事なのは
362:デフォルトの名無しさん
20/08/02 15:57:45.72 nzilHH7Z.net
正規表現による力技でもできるけどな
363:デフォルトの名無しさん
20/08/02 17:19:38.08 Src0piYd.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
364:デフォルトの名無しさん
20/08/02 18:37:38.07 rl9xr/mh.net
beautifulsoupでは取れないサイトが多すぎる。
で、結局変化後のDOMに追随できるSeleniumの学習に進むことになるわけだが…
そこまでやるなら、さらにjsとcssも分かってるとくればpuppeteerやtaiko使った方が楽という罠
365:デフォルトの名無しさん
20/08/02 18:41:50.96 HU2rRSvM.net
seleniumを使っていると悪質botとみなしてアクセスブロックするサービスを使う増えてきていて、スクレイピングはいずれ廃れる技術。
366:デフォルトの名無しさん
20/08/02 19:07:24.40 rl9xr/mh.net
seleniumとかは本物のブラウザを操作してアクセスしてるわけで、そんなん掻い潜る方法はいくらでもある。ただしrecapchaに類するパズル解かせて人間か判断するブロックはいかんともしがたいが…
そこは一旦停止させて人間に入力させるようにするしかない
367:デフォルトの名無しさん
20/08/02 19:17:01.80 hOgQnHyE.net
株価のデータを引っ張ってくるにはどうするのがベストなの?
368:デフォルトの名無しさん
20/08/02 19:30:46.42 hD/B3n6L.net
pandas detareader使えよ
369:デフォルトの名無しさん
20/08/02 22:48:40 afjdMLlX.net
最初から、Ruby on Rails で、Selenium Webdriver が楽。
DB も付いてる
Github Actions のCI のシステムテストで、
Capybara で、Headless Chrome を使うとか
370:デフォルトの名無しさん
20/08/02 23:05:01 iSPzySye.net
Rubyなんて死んだ言語今更やるくらいならPythonでいいだろ
371:デフォルトの名無しさん
20/08/02 23:13:41 rl9xr/mh.net
selenium自体はJava製で、各種言語向けのドライバーが出ています。
その中で最も人気なのがPython向けdriverで、
最も不人気なのがRuby向けdriverです。
372:デフォルトの名無しさん
20/08/03 00:04:38 V89o1FHv.net
その死んだ言語と比べてもスクレイピングに必要な言語機能もライブラリも劣ってるのがPythonなんだよなぁ
今どきbs4+selenium+pythonで苦労してる人ってちょっと大丈夫?って思っちゃう
実際につかったことなければ苦労も分からないか
373:デフォルトの名無しさん
20/08/03 00:08:24.68 0nT8uF8W.net
便所漁りでイキってて草
374:デフォルトの名無しさん
20/08/03 00:09:30.68 pdVx07YE.net
ガイジ芸風変えたん?早く死になよ
375:デフォルトの名無しさん
20/08/03 08:21:37.31 PbA5kDcu.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
376:デフォルトの名無しさん
20/08/03 11:05:29.54 3aFKjSal.net
>>353
>一旦停止させて人間に入力させるようにするしかない
ここを上手く工夫して
「AIで文字認識の研究にご協力ください」っていう偽サイト造って
そこに問題解く人を大量に誘導する仕組みにして
captchaを人間に代行させる自動化プログラムらしきものを観たことがある
377:デフォルトの名無しさん
20/08/03 11:23:52 MCqJ1GDb.net
>>363
その偽サイトにスクレイピングボットがアクセスしてくるという地獄絵図www
378:デフォルトの名無しさん
20/08/03 11:30:55 VqnR0HKx.net
一種の(良心的?)MITMなのでbotにアクセスされても困らないというか
botが来る理由が判らない
379:デフォルトの名無しさん
20/08/03 11:41:09 MCqJ1GDb.net
>>363
2captchaだね。
1000ReCaptchaあたり3ドル取る有料サービス。
現在の平均解決時間は45秒とのこと。
380:デフォルトの名無しさん
20/08/04 01:30:57.80 8b2QE9nU.net
pythonでaccessを実行したいと考えています。
いくつか調べてみましたがさっぱり分からず。。。
具体的にはaccessでファイルを出力する際にボタンをクリックするのですが、その作業を複数回する必要があり、それを自動化したいと考えています。
pythonでデータベースを読む込む必要はなく、その作業だけを自動化したいです。
どのようなモジュールを使えばできるでしょうか?
低レベルな質問で恐縮ですが、お答えいただければ幸いです。
381:デフォルトの名無しさん
20/08/04 01:51:06.44 8QweQuKX.net
>>367
死ね
382:デフォルトの名無しさん
20/08/04 06:59:05.33 jwMzG50i.net
>>367
PyAutoGUIみたいな自動操作系のライブラリを使う
383:デフォルトの名無しさん
20/08/04 09:37:31.18 5xy5U4C9.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
384:デフォルトの名無しさん
20/08/04 09:49:27.55 d/TW9CWz.net
辞書でキーが存在しないときにNone返してくれるgetって便利なのあるけど
これの配列バージョンは無いの?
385:デフォルトの名無しさん
20/08/04 10:07:57.19 b4l1hFqy.net
335 336 338
コードもエラーコードも1のリンクあるものに貼り付けるのが正しいのでしょうか?
悩んでいたのですが、コードが人によっては不愉快になるかもしれないのでその質問自体は自粛しておこうかと思ってます。
内容的にはポイ活的なコードですが。
別の質問なのですが、会社のパソコンで休み時間などにPythonを勉強したいのですが会社のパソコンにはソフトのインストールはできません。
ウェブ上でseleniumとかも使えるサイトは無いですよね?
会社でポイ活のコードとか作動させる気はなく勉強用としてです。
386:デフォルトの名無しさん
20/08/04 10:35:35.31 vYzFyP25.net
>>372
Pythonのページいけよ
387:デフォルトの名無しさん
20/08/04 10:47:55.95 0aBwwNst.net
普通に家PCをリモートでいいんじゃない、スマホからでもつなげるし
388:デフォルトの名無しさん
20/08/04 10:55:22.65 njKuoHDi.net
>>372
>上半分
質問すること自体が不愉快になるぞ
規約違反チネ!!!(・∀・)
389:デフォルトの名無しさん
20/08/04 10:56:56.50 0aBwwNst.net
俺もポイ活勢だけどあまりこの話は余所で出さない方がいいぞ
ポイ活自体印象相当悪いからな
390:デフォルトの名無しさん
20/08/04 12:31:40.25 DzQriKoF.net
>>367
win32com を使う
access でボタンを押したときに呼ばれてる関数を探す
win32com からその関数を実行する
391:デフォルトの名無しさん
20/08/04 12:50:22.67 5Wn6uTlk.net
373
なるほど。わかりました。
374
環境作ればリモートもたしかによさそうな気がしてきました。p関連は最終的に自分で勉強していきます。
3
392:75 すみません。ですが1を読んでもわかりません。
393:デフォルトの名無しさん
20/08/04 13:42:38.77 yjO/bVZu.net
python 3.9がリリースされたらしいんですが
公式見ても見つかりません
誤報でしょうか?
394:デフォルトの名無しさん
20/08/04 14:09:02.43 Nxnzt8Qr.net
>>367
URLリンク(docs.microsoft.com)
URLリンク(docs.microsoft.com)
URLリンク(docs.microsoft.com)
URLリンク(softcell-japan.com)
URLリンク(www7b.biglobe.ne.jp)
URLリンク(www.isa-onlineshop.net)
395:デフォルトの名無しさん
20/08/04 14:12:09.06 rbslZ05+.net
3.9はまだベータ、正式版は10/5の予定
ダウンロードページの真ん中あたりにPython 3.9 Release Scheduleってあるじゃろ
396:デフォルトの名無しさん
20/08/04 15:17:38.90 d/TW9CWz.net
a = 0
if True:
_a = 1
else:
_a = 0
print( a )
一行目のa=0ってかならずaが1か0が代入されるのでいらないと思うけどみなさんは書く派ですか?
自分は何の変数があるかどうかぱっとみわかりやすいので書く派なんすけどa以外にも複数変数あるときも書くものかなって。
でも結局最後の行見ないといけないし、やっぱこの変数使わないってなったら編集の面倒さも2倍だなって
397:デフォルトの名無しさん
20/08/04 15:45:59.52 gYE3Uom9.net
a = 1 if True else 0
398:デフォルトの名無しさん
20/08/04 16:01:09.56 DzQriKoF.net
else には行かないから
a = 1
だけで充分だろ
もし変数観るなら
b = True
a = 1 * b
#aは1
b = False
a = 1 * b
#aは0
399:デフォルトの名無しさん
20/08/04 16:33:07.59 .net
>>383
その1や0の部分に他の変数が出てくる時見づらくないですか?
関数型みたいに他の変数の数だけ三項演算子で記述するってことかな?
それなら見やすいと思った
>>384
>else には行かないから
その通りです
なぜならif Trueになっているからです
そこから下はちょっと何言ってるかわかりませんでしたすいません
400:デフォルトの名無しさん
20/08/04 17:52:50.03 rLl+qUK9.net
python基本好きだけど、三項演算子とlambdaはブサイクで嫌い
401:デフォルトの名無しさん
20/08/04 18:32:48.64 njKuoHDi.net
>>378 >>385
おまえらまとめて
初心者の質問板 URLリンク(matsuri.5ch.net) へ(・∀・)カエレ!!!
もう二度とくるなよ
402:デフォルトの名無しさん
20/08/04 18:34:04.52 Z0Jf3hFU.net
>>379
これでしょ
俺も数時間前に見て、python公式確認しに行っちまったよ
URLリンク(i.imgur.com)
URLリンク(codezine.jp)
403:デフォルトの名無しさん
20/08/04 19:29:59 .net
>>387 なんか見えてきたので間違ってるかもしれないけど一応メモしとく
a=1
b=0
if True:
_a=1
_if True:
__b='1,1'
_else:
__b='1,0'
else:
_a=0
_if True:
__b='0,1'
_else:
__b='0,0'
print(a,b)
こういう書き方のコードって結構見る
if Trueの部分が真偽どちらであろうと結局a,b出力されるじゃんって感じのコード
実際見るコードはaもbも複雑で相互作用しまくってるけど
結局見やすさを追求するなら、変数が出てくる部分をどうにかこうにか関数でやればいいじゃんって思ってきた
f1=lambda n:1 if n else 0
f2=lambda n:1 if n else 0
f30 = lambda n1:lambda n2:'('+str(n1)+','+str(n2)+')f30'
f31 = lambda n1:lambda n2:'('+str(n1)+','+str(n2)+')f31'
f4 = lambda n:1 if n else 0
ab=lambda a:f30(a) if f4(a) else f31(a)
n = f1(True)
a = f1(n)
b = f2(False)
print('a = '+str(a))
print('b = '+str(b))
print('(a,b)='+ab(a)(b))
最終的に使われている変数は何か、が圧倒的に見やすい
いらない変数を削除・編集したときに、削除・編集すべき関数も瞬時にわかる
404:デフォルトの名無しさん
20/08/04 21:13:38.93 HzuBP/6f.net
Pythonしか書かない人とCも書く人ではコーディングスタイルが多少変わってもおかしくない
とりあえず出てくる変数は先に宣言した方が見やすかったりするのさ。
後でアルゴリズムを変える可能性を考えると必ず式で一発で評価できるか微妙なときもあるしね。
405:デフォルトの名無しさん
20/08/04 23:13:53 tuSGsgmJ.net
初歩的なことですまないが、
if True:
って、条件の対象って何?
406:デフォルトの名無しさん
20/08/04 23:51:00.57 KNZwnkDB.net
def show_start_menu():
root1 = tk.Tk()
root1.title(u"データ分析")
root1.geometry("400x300")
# Label
Static1 = tk.Label(text=u'分析するデータの個数を選択して下さい')
Static1.pack()
# Button1
Button1= tk.Button(text=u'1データを分析', width=25)
Button1.bind("<button1-1>",print('click'))
Button1.place(x=105, y=60)
root1.mainloop()
これを実行するとウインドウ開くと当時にclickって表示されるんですけどなんででしょう?
button1を左クリックしたらclickと表示されるようにしているつもりなんですが・・・。
407:デフォルトの名無しさん
20/08/05 00:23:56 .net
>>391
何もないよ
すでにBoolean型のTrueが入ってるから
408:デフォルトの名無しさん
20/08/05 00:28:02 BsFah0sm.net
>>391
if文は引数が真であるかを判断するもの
409:デフォルトの名無しさん
20/08/05 00:51:10 ZBlhTFE5.net
>>392
メソッドの引数は渡される前に評価(print()が実行)されてしまうから。tkは関係ない
def clicked():
print('click')
button1.bind('<button-1>', clicked)
410:デフォルトの名無しさん
20/08/05 01:24:16.90 Oa+okPfy.net
>>393,>>394
ということは、やっぱり必ず真になって偽にはならないということだよね
デバッグやループのときに使うのはわかるけど、
それ以外で使う意味がいまいちわからなくて
結局件の使い方には意味がないってことでいいの?
411:デフォルトの名無しさん
20/08/05 02:02:08.19 BHc41wwZ.net
>>396
馬鹿にはわからんだけだよ
412:デフォルトの名無しさん
20/08/05 02:26:01 2RyFB+EQ.net
>>389、>>396
とにかく 是が非でも a=1 にしたいんだろ
そこを通過してくれないと困るんだろ
413:デフォルトの名無しさん
20/08/05 02:36:08.51 .net
n = f1(True)を n = f1(False)にすればa=0になるし
if True: を if False:にしてもいいし
文脈みればどうでもいい部分だからif Trueにしてるってことくらいわかるでしょ
a=1だけでいいとかはまったくの的外れ
414:デフォルトの名無しさん
20/08/05 02:39:15.35 .net
コード”のみ”をみれば結果がa=1だからそれを最適化すればいい
とか普通にネタで言ってるんだと思って流してたけど違うのか??
そんなこと言い出したら全角の_でインデント使ってるとこも
エラー出るぞとか言って徹底すればいいのに
415:デフォルトの名無しさん
20/08/05 02:41:39.28 .net
ガチのマジでアスペいない?
あざといからネタでやってるんだと思ってるんだけどなぁ
416:デフォルトの名無しさん
20/08/05 02:45:26.49 2RyFB+EQ.net
初めから知識0からじゃ何も進まないじゃないか
ともかく前提条件が >>1以外の事は考えたくないんだ
417:デフォルトの名無しさん
20/08/05 06:22:3
418:2 ID:LSc+X1IL.net
419:デフォルトの名無しさん
20/08/05 08:08:10 XsPNeg0Z.net
>>403
temp_dic={}
forループの中で
temp_list=[]
リストの中身いれてさいごに
hoge="list_"+str(i)#桁揃えのやり方あるけどなんだったかわすれたわ
temp_dic[hoge]=temp_list
でもってさいごのさいごに
またforループでdicから順々に取り出せばえんでねーのかな
420:デフォルトの名無しさん
20/08/05 08:51:45 L/0IIDMF.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
421:デフォルトの名無しさん
20/08/05 09:11:58 +q2ZzHFA.net
>>405
放射能まみれのチョッパリが何をイキガッているんだ?
強姦と窃盗はお前らチョッパリのお得意分野だろう!
慰安婦の方々に謝罪し、徴用工の方々にきちんと賠償しろ
俺たちに口応えするのはそれからだ!
422:デフォルトの名無しさん
20/08/05 09:20:36 nWrq5ml2.net
>>401
ガチ
423:デフォルトの名無しさん
20/08/05 10:10:28.99 zJw940E0.net
>>395
ありがとうございます。
これだと
clicked() takes 0 positional arguments but 1 was given
となりました。引数無いぞコラというエラーですよね。
def clicked(a):
print('click')
button1.bind('<button-1>', clicked)
だとOK。
424:デフォルトの名無しさん
20/08/05 10:19:51 zJw940E0.net
button1.bind('<button-1>', clicked)
って左クリックをしたらclikedを実行ではなくて、
425:デフォルトの名無しさん
20/08/05 10:20:59 zJw940E0.net
左クリックをすると
イベント値をclickedにわたすということでしょうか?
クリックをしたら関数を実行みたいにしたいのですがbindを使うのが間違ってる?
426:デフォルトの名無しさん
20/08/05 10:28:09.96 LSc+X1IL.net
>>404
ありがとうございます。
なんとかなりそうです。
427:デフォルトの名無しさん
20/08/05 10:44:01 xKYyZvTf.net
>>403
execをつかう
要するに、「python 変数 動的 生成」と検索すると答えは出る
Python - pythonでname0,name1,name2・・・のように変数を宣言したい|teratail
URLリンク(teratail.com)
pythonで動的に変数を定義する - Qiita
URLリンク(qiita.com)
pythonの教科書でevalが全然説明されてないのも問題だ
こういう便利なヤツはバンバン使えばいいのに
そもそもevalとapplyは最重要項目でしょう
428:デフォルトの名無しさん
20/08/05 11:07:48 G2EhtAf5.net
そもそもlist/dictに勝る点がないので、便利でも何でもない。
デバッグのし辛さとか変なコードの実行などなど。
execなんかよりストレートにglobals/locals使う方法もあるが、
globals()["hoge"] = "Hoge"
print(hoge)
これもexecと同様デバッグがめんどくさくなる。
429:デフォルトの名無しさん
20/08/05 11:21:08.66 zJw940E0.net
>>410
すいません自己解決しました。
button1 = tk.Button(
430:root1, text='1データを分析', font=20,command = clicked) でOKでした。
431:デフォルトの名無しさん
20/08/05 11:38:46.21 zJw940E0.net
ずっとanacondaからvscodeでpythonいじってたんですが、
プログラムの規模が大きくなってきたため、統合開発環境をインストールして開発しようかと思っています。
無料の統合開発環境でいいのってないですか?
432:デフォルトの名無しさん
20/08/05 11:38:47.88 LSc+X1IL.net
2次元配列のリストと辞書(一次元)は同じ様に思えるのですが、違いはありますか?
(3.7以前、辞書が順序を保存しなかったときは大きな違いがあったと理解しています。)
それぞれの仕組みが書いてあるサイトはあるのですが、何が違うのかを調べても見つけることが出来ませんでした。
書くのが面倒であれば、説明が書いてあるサイトを貼っていただく形でもありがたいです。
>>412
ありがとうございます。試してみます。
433:デフォルトの名無しさん
20/08/05 11:39:01.66 kVNaCqIg.net
File "C:\Users\NEC-PCuser\.spyder-py3\temp.py", line 23, in <module>
my_data = genfromtxt('SingleECG.csv')
File "C:\Users\NEC-PCuser\anaconda3\lib\site-packages\numpy\lib\npyio.py", line 1772, in genfromtxt
fid = np.lib._datasource.open(fname, 'rt', encoding=encoding)
File "C:\Users\NEC-PCuser\anaconda3\lib\site-packages\numpy\lib\_datasource.py", line 269, in open
return ds.open(path, mode, encoding=encoding, newline=newline)
File "C:\Users\NEC-PCuser\anaconda3\lib\site-packages\numpy\lib\_datasource.py", line 623, in open
raise IOError("%s not found." % path)
グラフをプロットしたらこのようなエラーが出ました。解決方法を教えてください
434:デフォルトの名無しさん
20/08/05 12:04:12 aMNOBbmO.net
>>416
URLリンク(docs.python.org)
URLリンク(docs.python.org)
これ見ても何が違うかわからないの?
435:デフォルトの名無しさん
20/08/05 12:44:19.03 L/0IIDMF.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
436:デフォルトの名無しさん
20/08/05 12:59:40.04 bfUj5q3R.net
今どきWindowsに直でPython入れてる馬鹿はくたばっとけよ
437:デフォルトの名無しさん
20/08/05 13:08:50.41 IZQzbQjk.net
>>417
1.Spyderを1回でも起動するとホームフォルダに「.spyder-py3」というフォルダができています。
Windowsの方は、ご自分のデフォルトのホームフォルダに「.spyder-py3」ができていることがわかります。
OSXの方は、ホームフォルダ直下に、不可視フォルダとして存在しています(見えません)。Finderの「移動」メニュー→「フォルダへ移動」をクリックして、「フォルダの場所を入力」に「.spyder-py3」と入力し、Returnキーを入力します。
2.このフォルダの中に、「spyder.lock」というファイルを探してください。このロックファイルは通常Spyderの起動時に自動的に作成され、終了時に自動的に消去されます。ところが、何らかの理由でこれが残ってしまった場合、spyderを新たに起動できなくなります。
3.spyder.lockをゴミ箱に入れて削除します。
4.再びspyderの起動をおこなってください。
438:デフォルトの名無しさん
20/08/05 13:21:10.89 LSc+X1IL.net
>>416
自己解決
これを読んで理解しました。
URLリンク(www.quora.com)
439:デフォルトの名無しさん
20/08/05 13:40:48 XsPNeg0Z.net
>>417
>>1をよめ まもれ
はなしはそれからだ
440:デフォルトの名無しさん
20/08/05 13:51:58 xp5DSzK/.net
>>403
n行目のリストにlists[n]でアクセスできれば十分だと思うんだけど
どうしてそれぞれの行にわざわざ変数名を付けたいの?
441:デフォルトの名無しさん
20/08/05 14:20:17.00 LSc+X1IL.net
>>424
webからpytonで取得したデータをcsvかxmlで出力して、
他のデータと合わせて処理したいというのが今の狙いです。
今の所excelで最終的に処理しようと思っていますが、もう少し勉強しないとそのアプローチが正しいのかもわからないです。
プログラム自体完全初心者で、初めて1週間程度なので分かっていない部分が非常に多いことは自覚してます。
pandaとかnumpyとか色々あるようですが、その辺りが理解できれば別のアプローチを考えるかもしれません。
442:デフォルトの名無しさん
20/08/05 14:23:23.58 LSc+X1IL.net
質問にキチンと答えられていなかったので補足すると、
csvで出力した場合に他のデータとマージしたりする時に、
各行ごとに順番で名前がついていれば処理しやすいと思った、というのが理由です。
根本的な発想が間違っている可能性もありますが、その点は申し訳ないです。
443:デフォルトの名無しさん
20/08/05 14:31:36.03 YFT9R2Ox.net
単純に順番でなのであれば、>>424が言う様に2次元配列でいいと思う
>>> list=[["a","b","c"],[0,1,2],["あ","い","う"]]
>>> list[0]
['a', 'b', 'c']
>>> list[1][1]
1
444:デフォルトの名無しさん
20/08/05 14:38:49 pA7ncT8x.net
>>426
変数名そのものを変数で定義したり外部に出すのはとてもむずかしい
(できなくはないが普通はやらないので特別な方法をとる必要がある)
dictを使うのが正解で
それならitems()で変数名と中身の両方にアクセスできる
445:デフォルトの名無しさん
20/08/05 14:52:44.05 pA7ncT8x.net
変数名っていうかキーね
まぁ普通はそういう変数を変数で命名するのはpython以外の言語でもしない
446:デフォルトの名無しさん
20/08/05 14:55:15.13 LSc+X1IL.net
皆様、色々教えて頂きありがとうございます。
>まぁ普通はそういう変数を変数で命名するのはpython以外の言語でもしない
なるほど。
それでも世の中うまく回ってるってことは、私みたいなアプローチをする必要がないんでしょうね。
辞書とか多次元リストを試してみます。ありがとうございました。
447:デフォルトの名無しさん
20/08/05 14:56:47.32 xp5DSzK/.net
>>425
それで、それぞれの行に変数名を付けたい/付けたほうがよさそうと思った理由は?
448:デフォルトの名無しさん
20/08/05 14:57:31.62 xp5DSzK/.net
>>431
あーごめん、入れ違いになったみたい
449:デフォルトの名無しさん
20/08/05 15:06:59.98 Zf7jxWAJ.net
すいません、自己解決しました
450:デフォルトの名無しさん
20/08/05 15:10:18.46 xp5DSzK/.net
>>426
そういう理由であれば変数名じゃなく値として行番号を持つデータ構造を選ぶか
csvに出力するときにlists[n]のインデックス値を行番号として出力するようにすればいい
変数名は入れ物の名前で
基本的にプログラムに固定値として書く(ハードコーディングする)ものなので
動的に変わるような値は変数名にはしない
(メタプログラミングとかやや特殊な使い方をしたい場合は除いて)
451:デフォルトの名無しさん
20/08/05 15:32:35.53 YFT9R2Ox.net
しかし初めて1週間にしてはやろうとしてることがハイレベルだな。
才能あるんじゃない?
452:デフォルトの名無しさん
20/08/05 16:17:41.42 zJw940E0.net
conda activate "C:\Users\takashi ishida\Anaconda3"
conda : 用語 'conda' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識
されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから
、再試行してください。
453:デフォルトの名無しさん
20/08/05 16:19:36 zJw940E0.net
>>436
すいません。途中で送信しました。
anacondaのvscodeで開発したプログラムを他で実行しようとするとこういうエラーがでます。
condaコマンドって使った覚えがないのですが・・・。
454:デフォルトの名無しさん
20/08/05 18:52:45 WY90OE83.net
>>437
同じディレクトリに.vscodeってあって、それまでコピーしてきてないか?
455:デフォルトの名無しさん
20/08/05 19:32:40.11 LSc+X1IL.net
>>435
才能があるとは思わないですが、面白さにハマって一気に勉強してます。
あと10年早くプログラミング開始してれば絶対にエンジニアに転職してたと思います。
キチンと使えるようになれば相当色んなことが出来ますね。
暇つぶしにゲームとかやってないでpythonやってりゃ良かった・・・
456:デフォルトの名無しさん
20/08/05 19:47:32.85 v2dPmWiH.net
>>392
既に米付いてるけどもうひとつ
Button1.bind("<button1-1>", lambda : print('click'))
457:デフォルトの名無しさん
20/08/05 20:17:47 XsPNeg0Z.net
>>436-437
「他」とやらに
.pyだけもってきていて
anaconda入ってないとかいうオチじゃねーの?
>>439
オラも
暇つぶしにプログラミングなんてしてないで
ボカロの調教か3Dモデリングしてればよかったとか
そも建築学科いってればとか
いろいろ思うだーよ
458:デフォルトの名無しさん
20/08/06 12:59:02.85 VbLHuZhq.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
459:デフォルトの名無しさん
20/08/06 19:46:10 9CykuhS+.net
文字列を整形するスクリプトをいくつか使っているんですが
手軽に使いたいので整形前の文字列をinputで入力するようにしています
でも文字数に制限があるらしく長い文字列だとエラーになってしまいます
やっぱり横着しないでファイルから読まないとダメですか?
460:デフォルトの名無しさん
20/08/06 19:50:18 7L1cCHwV.net
>>443
限界数の文字列をまず受け取る
しかるのち
とった分をhogeみたいなのに代入しておいて
続きを入れろと促すメッセージを出し、
受け取ったらhogeに足す。
(以下略)
途中で打ち間違えたら困るので、普通にファイルから受け取るほうがいいぞ
461:デフォルトの名無しさん
20/08/06 19:52:43.52 9CykuhS+.net
>>444
なるほど!と一瞬思ったけど
文字列が限界突破してるかどうかの判断はどうやるんでしょう?
462:デフォルトの名無しさん
20/08/06 22:12:23.79 bT9J+NNY.net
>>445
input関数の上限はたしか1024文字
ためしに1025文字打ってみ
463:デフォルトの名無しさん
20/08/06 22:33:44.38 u+7LtLeC.net
input使うほうがめんどくね?
for line in sys.stdin:
print(line)
data = sys.stdin.readlines()
data = sys.stdin.read()
464:デフォルトの名無しさん
20/08/06 22:40:15.88 9CykuhS+.net
俺氏のレベルが低すぎてわからなかったが
限界のちょい前で区切れば良いのか
これはちょっと時間があったらやってみようと思う
ありがとう
>>447
個人的にはスクリプトをダブルクリックしてプロンプトに右クリック→エンターが楽だな
テキストファイルを編集するのが地味に面倒い
465:デフォルトの名無しさん
20/08/07 02:47:23.95 FY0CqvZ3.net
面倒くさいからクリップボードにコピーしたあと
pyperclipでクリップボードを読み込んでそのまま処理させてる
466:デフォルトの名無しさん
20/08/07 07:29:33.01 mKqTfwbZ.net
>>449
横レスだが
なるほどー
467:デフォルトの名無しさん
20/08/07 08:41:20 ts5R835r.net
ある意味かしこいなww
468:デフォルトの名無しさん
20/08/07 10:05:23.22 5Voyvt5w.net
というかpythonってjavascriptで言うところのtextareaみたいなのないの?
だったらブラウザのdriver使って入力するとか
そもそもtextエディタのdriverがあったりして
469:デフォルトの名無しさん
20/08/07 10:38:21 I/keIxIH.net
>>452
そんな事がしたい奴はJupyterを使う
470:デフォルトの名無しさん
20/08/07 11:12:59.46 a/GqHoW6.net
>>452
textareaはHTMLだろう
ブラウザのdriverってなんだよ?
そもそもtextエディタのdriverとか
ちょと何言ってるかわかんない
471:デフォルトの名無しさん
20/08/07 13:55:42.48 .net
>>453
そうなの?
数値とかデータだけ収集したいならそれでいいけど
文字列を整形するってなると、どこかのサイトからコピペみたいな用途もあるかな、と
>>454
たしかに、htmlタグだった
chromeドライバーとか、使い方の変数もdriverってなってるしdriverって言っていいかなって。
driver.get("index.html")みたいにして、テキストエリアに挿入
pythonで受け取って処理、みたいなことができると思った
というか既存ウェブサービスであれこれしたいときは普通に使ってるし
472:デフォルトの名無しさん
20/08/07 18:26:19.71 KSWhJGwQ.net
>>455 自動化のRPA Selenium のドライバーとかと混乱してない?
driver.get ってSelenium の機能じゃないの?
Python でもSelenium は使えるよ。
473:デフォルトの名無しさん
20/08/07 19:52:25 .net
>>456
>Selenium
うん、もちろんそうだけど。。
Seleniumでchromeドライバ読み込んで
>>443
スクリプトをダブルクリック → driver.get("自分で用意したtextarea.html")
→ テキストエリアに右クリック(文字列コピペ)
→ pythonが変更を感知して文字列を読み取る
→ 文字列成形処理(textarea.htmlで何かしらの操作をやってもいい)
→ ウィンドウclose
みたいにすれば文字数制限なしの右クリック(コピペ?)→エンター必要なしのお手軽inputの代わりになるのでは、ってこと
474:デフォルトの名無しさん
20/08/07 20:11:00 mKqTfwbZ.net
>>457
おまえの過去レスから
なぜそこまでエスパーしろと
おれらに要求するんだwww
(・∀・)カエレ!!!
475:デフォルトの名無しさん
20/08/07 20:44:30.96 .net
おれとしてはそんなことよりもなんで>>447の方法じゃだめなん?というのが気になってる
476:デフォルトの名無しさん
20/08/07 20:51:13.44 R6EkH4Oi.net
inputってOSとかターミナルに依存せんの?
その1024っていうのも文字数なのかバイト数なのかよくわからんし。
いままで意識したことなかったけど、意外に短かいもんだな。
477:デフォルトの名無しさん
20/08/07 23:42:19 TzYKRTqH.net
漏れは、Ruby で、クリップボード経由で、文字列を変換している
さらに、バッチファイルに、ruby .\script.rb と書いて、
ダブルクリックで、そのプログラムを起動できるようにしている
# クリップボード内の複数行文字列の、各行の先頭・末尾から、
# 連続する空白類を除去して、クリップボードに入れる
str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換
ary = str.each_line.map( &:strip ) # 連続する空白類を除去する
IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end
478:デフォルトの名無しさん
20/08/08 11:27:43 noFfmCPy.net
>>452
tkinter
479:デフォルトの名無しさん
20/08/08 15:48:54 .net
>>462
さっそくやってみた 良いね
from tkinter import *
root = Tk()
root.geometry('240x120')
e = Entry(root, validate="key", validatecommand=(root.register(lambda p:[print(''.join(p.split())),root.quit()]), '%P'))
e.grid()
root.mainloop()
480:デフォルトの名無しさん
20/08/08 16:54:46.34 jNP2OM4q.net
URLリンク(murashun.jp)
フォルダ名の一覧を取得したいのですが、ファイル一覧を取得してからフィルターをかけるしかないのでしょうか?
4行目なんですが、このcmdライクな書き方が良くわからないのです。
481:デフォルトの名無しさん
20/08/08 16:57:20.42 jNP2OM4q.net
f for f とは何でしょうか?
↑牡蠣忘れました
482:デフォルトの名無しさん
20/08/08 17:11:25.36 .net
>>465
内包表記
[ ”条件1がTrueのとき” for f in files if "条件1" ]
else使いたいときは書き方が変わってifが前にくる・・
[ ”条件1がTrueのとき” if "条件1" else "条件1がFalseのとき" for f in files ]
例
files = ["a","b","c","d"]
#条件1=Trueだったとき
print( [ "条件1がTrueのとき f = "+f for f in files if True ] )
#条件1=False だったとき
print( [ "条件1がTrueのとき f = "+f if False else "条件1がFalseのとき f = "+f for f in files ] )
483:デフォルトの名無しさん
20/08/08 19:28:37 JWEyeEm5.net
リスト内包表記までは便利だけどifに複数条件からめるとかえってややこしくなるので複数行にしてる
タプルのリストの重複チェックとかは定型文的に使ってるわ
484:デフォルトの名無しさん
20/08/08 19:45:59.56 jNP2OM4q.net
改造してみます
ありがとう
リネームに使いたいです
485:デフォルトの名無しさん
20/08/08 20:27:19.81 WWf5PMr4.net
リスト内包表記の方がfor文の処理速度が速くなるらしいけど読みづらすぎ&書きづらすぎるわ
リスト内包表記を使わずに速度を処理速度を速くする方法を作って欲しい
486:デフォルトの名無しさん
20/08/08 20:34:03.26 jNP2OM4q.net
読みづらいのでやめときます
487:デフォルトの名無しさん
20/08/08 21:25:03 PbNRKPU5.net
そんな主体性がないことでは困る
488:デフォルトの名無しさん
20/08/09 02:01:57.03 .net
見慣れの部分もあるだろうけど明らかに見難いと思う
ただ結果的に何が出力されるんだ?
という部分に着目し簡潔に書く、そのために(無駄を省いたり関数にしたりして)
工夫せざるを得ない状況を作り出すための方法としてはありかも
489:デフォルトの名無しさん
20/08/09 10:54:15.87 /x2pn//m.net
組み込み関数を使うといい
490:デフォルトの名無しさん
20/08/09 11:21:50 rlvW70Ue.net
pandasで読みん込んだテキストファイルの先頭から指定した行まで削除は出来たのですが、最後から指定した数行だけ消すやり方がよう、分かりません
行数がころころ変わるのでrangeでは消せないのです
お知恵下さい
491:デフォルトの名無しさん
20/08/09 11:34:08.98 /x2pn//m.net
>>474
URLリンク(ideone.com)
URLリンク(docs.python.org)
492:デフォルトの名無しさん
20/08/09 12:28:45 G1el0n+S.net
globで取得したファイルのリストの最初のファイルを取得するにはどうしたらいいでしょうか?
file = glob.glob("fold/*")
for i in file:
print(file[i])
TypeError: list indices must be integers or slices, not str
こういうエラーが出ますが、fileはリストではないのですか?
493:デフォルトの名無しさん
20/08/09 12:31:25.41 G1el0n+S.net
file = ["one","two","three"]
for i in len(file):
print(file[i])
テスト用に作ってみましたが、これだとnot iterableになります
iが繰り返しに使えないとはどういうことでしょうか
インデックスは繰り返せるはずですが、、、
494:デフォルトの名無しさん
20/08/09 12:33:47.83 lPdKuM8h.net
>>476
fileはリストだけど
iは?
エラーメッセージ読めよ
495:デフォルトの名無しさん
20/08/09 12:39:36.94 JXdOVZ/U.net
>>476
リストをループすると、iにはイテレーターじゃなくて、リストの中身が入る
file = glob.glob("fold/*")
print(file)
for i in file:
print(i)
実行j結果
['fold\\aaa', 'fold\\bbb']
fold\aaa
fold\bbb
だからfile[i]にすると、文字列を使ってリストにアクセスしようとするからエラーになる
496:デフォルトの名無しさん
20/08/09 12:46:15.61 JXdOVZ/U.net
>>477
これはPythonの記法的な問題
for i in 3みたいな書き方は出来ない
エラーメッセージでTypeError: 'int' object is not iterableって書いてある通り
file[0]、file[1]、file[2]みたいにアクセスしたい場合は>>479の書き方にするか
rangeを使う
file = ["one","two","three"]
for i in range(3):
print(file[i])
実行結果
one
two
three
497:デフォルトの名無しさん
20/08/09 14:55:41.57 .net
さらにenumerateも便利、同時にインデックスとれる
files = ["one","two","three"]
for i,n in enumerate(files):
_print(i,n)
>>>実行結果
0 one
1 two
2 three
498:デフォルトの名無しさん
20/08/09 18:18:04 G1el0n+S.net
↑ありがとうございました
インデックスではないんですね
range(len(file))を使いますです
499:デフォルトの名無しさん
20/08/09 18:55:14.84 TCh4WBtq.net
超初心者スレとはいえ、ちょっとこれは酷すぎるだろ
知的障害を疑うレベルだわ
500:デフォルトの名無しさん
20/08/09 19:10:05.24 /x2pn//m.net
下手な教え方するより一回チュートリアルやらせたほうが、結果的には近道になるパターン
501:デフォルトの名無しさん
20/08/09 19:18:43 xLYoDobK.net
>>469
入れ子になってたりタプルで複数の値を渡してたりしたら読みづらいときもあるけど、
慣れたら別に読み辛くないよ。
読み辛いなと思ったらforの前に改行を入れてみるとわかりやすいと思う
502:デフォルトの名無しさん
20/08/09 19:51:17.39 .net
.py実行したら出てくるcmdやターミナル画面ってあるけど
これをtkinterみたいなGUIウインドウの中に入れたり(そう見えてるように重ねたり)追従させたりできる?
tkinterのウインドウつまんで動かす時、一緒にターミナル画面も動いてきたらいいのにと思ったんだが
503:デフォルトの名無しさん
20/08/09 21:36:20 G1el0n+S.net
pathlibをインポートするとglobはインポートしなくていいのでしょうか
モジュール同士の継承関係がわからないですが、参考ページありませんか?
504:デフォルトの名無しさん
20/08/09 21:55:46.35 /x2pn//m.net
>>487
URLリンク(docs.python.org)
一通りチュートリアルやってみてはどうですか
505:デフォルトの名無しさん
20/08/09 22:23:18 .net
>>487
何をしたいかに依るのでは
from pathlib import *
#実行する.pyと同じ階層のファイルとディレクトリ一覧取得
#str()でファイルやディレクトリの絶対パスの文字列を取得できる
print( [ str(p) for p in Path().iterdir() ] )
#つまりその文字列を扱いフィルターをかけることもできる
#ファイルネーム・ディレクトリネームの文字数が20以上だけフィルタリング
print( [ str(p) for p in Path().iterdir() if len(p.name) > 20 ] )
506:デフォルトの名無しさん
20/08/09 23:07:31.69 AwKuV539.net
>>487
importするのに通常は依存継承関係とか余計な事は考えなくていい
ファイルが違えばスコープも違うのだから必要なモジュールならとにかくimportすればいいだけ
507:デフォルトの名無しさん
20/08/10 10:08:23 SIP0jVAr.net
>>150
わりと本気でSQL
508:デフォルトの名無しさん
20/08/10 10:44:09.54 rTlZ13Bm.net
>>489
>>490
了解しました
509:デフォルトの名無しさん
20/08/10 11:19:34 mxDHCoDt.net
xの値に反比例して1から0まで直線的に減少していく値yが入った
value_y[x]
があって、家などの画像の上に、value_y[x]に比例したピクセル値を持つグレー画像を重ね合わせて表示させたいと思っています。
(左端はグレーで家は見えなくて、右側に行くにつれて段々とグレーが薄くなって家の画像が見えてくる感じ)
openCVとか使えば出来るかなとおもうのですが、重ね合わせようのグレー画像のうまい作り方があったら教えて下さい。
510:デフォルトの名無しさん
20/08/10 11:58:33.01 rTlZ13Bm.net
イテレータとリストと配列の違いってなんでしょうか?
かんたんな例え、はありませんかね、、、
511:デフォルトの名無しさん
20/08/10 12:01:57.46 epTxOZiR.net
厳格な型制御をするC#から勉強すればそんなアホな質問は出てこない。