くだすれPython(超初心者用) その38
■ このスレッドは過去ログ倉庫に格納されています
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。
エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで
前スレ
くだすれPython(超初心者用) その37
http://mevius.5ch.net/test/read.cgi/tech/1521271945/ なにをしたいかによるが
5くらいじゃね?w
ないよ >>515
既にVBAを使えるなら簡単だよ
くどい型宣言、配列のみの貧弱なデータ構造といった
VBAの使いづらい点が、Pythonでは全て解決されている
ただしWebやネットワークの世界には手を出すなよ
Python以外にも必要な知識が爆発的に増えていくら時間があっても足りない
Pythonはローカルのテキストデータをいじくる用途で輝く言語だ >>515
ナカーマ!
俺もVBAは随分とマスターしつつあるのでPythonに手を出し中…。
入門書からコツコツやっててイメージが湧きつつある!! >>516-517
まじで?すげー難しいイメージあったんだが本格的に学んでみようかな
>>518
(゚∀゚)人(゚∀゚)ナカーマ
VBAはやりたいことがあってそれを調べてる内にできるようになったクチだから、Pythonは何ができるか分からんからとっつきにくいわ 記法について教えてください。
https://qiita.com/pumbaacave/items/942f86269b2c56313c15
上記のサイトのマルチプロセス実行関数を定義している箇所に下記のように記述があるのですが、
なぜカンマ以降空欄なのでしょうか?
process_pool = Pool(processes=n, ) そのカンマは有っても無くても変わらんから消し忘れだろう
それで納得行かないならコメント欄で本人に聞いてこい
ここは著者の気持ち推測スレじゃないからな 毎週得意先から10くらいのPDFが送られてくるのですが。
PDFを全て選択→コピー→貼り付け→ボタン押してVBA発動(社内で見たい数字に変換)→次のPDFを開く…手作業で繰り返しています。
これをPDF自動で開かせてコピーペーストしてVBAを動かす、、までPythonでやりたいのですが、可能でしょうか? >>522
今流行りのRPA導入したら?
悪いけどPythonには不向きなタスク 課題解決において、本当に優れたソリューションは有効性や実現性だけでなく応用性・永続性・再現性を備えている
・PDFのフォーマットが変わったらどうするのか?
・自分が今の仕事から離れたらどうするのか?
・他の業務にも広く展開できないか?
Pythonで他の誰にも分からないもの作るより、522が率先してRPA入れて展開したほうが遥かに522は評価される
そういう思考と行動ができればCIOにだってなれるぞ 普通ににPythonのRPAフレームワークあるが… うんこ漏らしながら、、答えると
PDFMiner.six
使え。 すっ、すいません。
先程まで咥えてたボっぼくのおちんぽっぽ知りませんか?
トイレに行ったら、どこに行ったか分かりません。
コンピューターの未来予測で解決して下さいwww
https://eurekalert.org/multimedia/pub/173001.php 皆さん、回答ありがとうございます。
もう少し自分の方で調べてから、再度質問させて頂きます。 >>530
マジでやばいな
ウィルスだらけで、PC壊れた。
弁償してくれ。 今更だけど>>447に自己レス
os.renameだと移動先がない場合、FileNotFoundErrorになる
os.renamesだと移動先がない場合、自動生成してくれる
Pythonの標準ライブラリはsのある・なしで動作が変わるものがあるから気をつけないといかんね Pythonのファイル操作関連機能は
複数ライブラリに散らばってたり重複があったりと
カオスなことになってて非常に使いづらい
一度自分用の早見表を作ったんだけど紛失してしまった
3で互換性なくなる時にpathlibあたりに一元化すれば良かったのに 複雑だが頻繁に使うなら自分専用にラップしただけのライブラリでも作ればいい 自分専用にラップといえば、
re.searchはマッチしたものを直接返せないと思って関数作ってたけど
↓みたいににすれば直接返せると最近知った
txt="123456"
mat=re.search("12(.*?)56",txt).group(1)
マッチオブジェクトを返すってなんだよ使いにくいなぁと思ってたけど
使い方を知ったらなかなか便利だと感心した そういえばGuidoがBDFL辞めるらしいな
PEP572関係でdisられたのが原因らしいが、ML追っかけてないからよく分からん
まあ、辞めたところで何がどうなることもないと思うがね >>539
>使い方を知ったら
正しくない使い方だろ…
使い捨てスクリプトだろうから止めないけど >>539
オブジェクトなんだからメソッドあるだろうよ
ちゃんと説明は読もうな >>541
俺もずっとこの使い方してたけどどこがまずいのか教えて >>534
sortに対するsortedのつもりで、reverseに対するreversedを使おうとするとハマる。
こちらはイテレータを返すので、もう一度リスト化しないと同じにならない。 >>543
たぶん以下のように正規表現パターンをコンパイルして使えってことだと思う
同じパターンで繰り返し何度も検索する時に速度的に有利・・・らしいが
これを使わないのは正しくない、というのは言い過ぎ
txt="123456"
r = re.compile("12(.*?)56")
mat = r.search(txt).group(1) >>543
searchでヒットしなかった場合Noneが返ってきて
groupメソッドなんて知らないって怒られる >>545
ちょっと説得力が弱いような…
>>546
そういう意味なら納得です >>548
だよなあ
くだすれの質問コードにどんだけ厳格さを要求するんだか >>548
ミスマッチの結果、二次的に発生した例外を捕まえてエラーハンドリングするのは意図が伝わりにくいしピタゴラスイッチかよって気がする そのままsearchして(この時点で例外とはならない)、
try-catchでgroup(1)すればいいのでは? 製品のプルリクに入ってたら直せって言うけど
個人のコードだったらどうでもいいわ >>551
いや普通に戻り値チェックしてください…
match = re.search(pat, text)
if match:
. s = match.group(1) webスクレイピングは、サイトの仕様変更である日突然マッチしなくなる可能性があるけど
それを想定して例外処理を作っとくのは面倒だし、作り忘れが発生する可能性も高いから
あえて>539のやり方を使って、エラーで止まるようにしたほうがわかりやすいかもしれん 仕様変更なのか
一時的な障害なのか
たまたまエラーになるデータだったのか
他の理由なのか
そういうの分析しないといけないから
リクエスト、レスポンスのダンプと処理のログは残したほうがいいよ 教えてって書いてあるから横から思うところを言っただけだが
>>549みたいなこと言われるんだったら二度と教えねえわ >>556
すまん、俺が悪かったよ
ちょっとイライラしててごめんな >>553の方法でNoneじゃないことを確認すれば何の問題もないんだよな
間違った方法ではない
>>556教えたくないなら教えなければいい義務ではないのだから >>559
間違っている箇所(戻り値チェック)を直せば、「間違った方法ではない」のは当たり前ですけどね… def func():
a,b=・・・
return a,b
の戻り値aだけが欲しい時にa=func()[0]などとせずa=func()だけで可能にする方法ある? この手の質問たまに見るけどなぜそう言うことをしたいのかいつもわからん >>562
def func():
a,b=・・・
return a >>565
matlabだとそれができるから、matlabから来た人は重要な戻り値を先頭にしてたまにだけ欲しい戻り値を後ろに書きたくなる
pythonでそれ同じようにすると、a,_=func()とかa=func()[0]とか書かなきゃならないのを忘れてどこかでエラー出ることが頻繁に発生する >>567
俺もそれ思ったけど、質問者の意図はreturn a,bとした上でaだけ返すって意味みたい。
なんでそんなことしたいかは分からんけど >>539
None で Exception 出ないか? ああ違うか
yeald a
yeald b
ydald c
... >>568
そのために
> a=func()だけで可能
なんてされたら迷惑だよ
自分だけで使うと言うならPythonの処理系弄ればいいと思うよ >>545
txt="123456"
r1 = re.compile("12(.*?)56")
mat = r.search(txt).group(1)
と
r2 = "12(.*?)56"
mat = re.search(r2, txt).group(1)
結果は同じになるけど、
オブジェクトにするかしないかで、細かい違いはどういうところで出てくるの? 最初の方(r1)間違った
txt="123456"
r1 = re.compile("12(.*?)56")
mat = r1.search(txt).group(1)
r2 = "12(.*?)56"
mat = re.search(r2, txt).group(1) >>578
じゃあ書き込むなよ。
沸点低すぎだわ。面倒くせ
>>576
読んで字の如くコンパイルされるので高速化が期待できる。 >>597
コンパイルされるから高速化ぁ?
それじゃ説明になってないんだよボケ >>580
答えないんだから書き込まなくていいって。ROMに徹してなよ。 >>545に答え書いてるだろうが日本語読めないのか? >>581
今日限りでこんな所ROMすらしなくなるから安心しろ 煽られて反応するのは方向性が違うだけで、沸点の低さについては同レベル >>579,>>583
やはりオブジェクトにコンパイルすると効率が上がるという点が全てみたいだね。
あとは、コンパイルのコストとの比較になるのかな。 >>588
コンパイルて言いたいだけやな。オブジェクトの理解もあやふやそうだ。
どっちも正規表現オブジェクトにコンパイルされてるよ。明示的か暗黙かの違いはあるけど。
↓が詳しいよ。
https://docs.python.org/ja/3.7/howto/regex.html 「今度の大型案件はコンパイルで〜」
「お宅もですか?実は弊社もコンパイルを〜」
「最近はコンパイルがないと始まりませんな〜」
「今度入った新人、若いくせにコンパイルも知らないと〜」 >>589
> どっちも正規表現オブジェクトにコンパイルされてるよ。明示的か暗黙かの違いはあるけど。
つまり、
r1はJavaScriptでいうところのRegExp() コンストラクタ(var r1 = new RegExp("12(.*?)56");)、
r2は同じく正規表現リテラル(var r2 = /"12(.*?)56"/;)と同じ、という考え方でいいのかな。
たしかにどちらもコンパイルと言ってた。
ということは、件のコードに効率には大きな違いはない、
ひいてはどちらを使っても構わない、
ということでいいの?
JavaScriptではリテラルのほうが速いとされているんだけど。 失礼、コピペで余計なクォートを入れちゃった。
正規表現リテラルは、var r2 = /12(.*?)56/; ですね。 r1もr2もいっしょ。
r2は内部でr1と同じ事やってメソッド呼んでるだけ。
ソース見たら一目瞭然。
https://github.com/python/cpython/blob/master/Lib/re.py
jsはリテラルの場合はプログラムロード時にコンパイルされて、
コンストラクタ使った時は実行時にコンパイルされるからリテラルの方が速い。 r1とr2って言っちゃダメだな
R1とR2ってことね
-----R1-----
r1 = re.compile("12(.*?)56")
mat = r1.search(txt).group(1)
-----R2-----
r2 = "12(.*?)56"
mat = re.search(r2, txt).group(1) >>591
> ということは、件のコードに効率には大きな違いはない、
そうだよ
1回しかやらないならね
> ひいてはどちらを使っても構わない、
> ということでいいの?
compileは>>545が書いてる通り
>> 同じパターンで繰り返し何度も検索する時に速度的に有利・・・
ってこと 正規表現リテラルは、実行する前に決まっている場合
一方、オブジェクトは、実行時に決まる場合にも使える Ruby のコーディング規則では、
正規表現リテラルは、Perl との互換性を保つ表記で、わかりにくいから、
常にオブジェクトの方を使え、って書いてあるものもある ポンコツrubyの思いつきコーディング規則とやらに合わせてのjavascriptで速くなることが分かりきってるリテラル使うなってか?w
頭湯だってんじゃねーか?wwww re.compile した結果をどっかに pickle して保存とかできますか? 気にするな
Pythonなんか元々ビチクソ遅いんだからそんなこといちいち気にしてたら禿げるぞ >>593-597
search()関数は、内部的にはcompile()関数+search()メソッドなんだねぇ。
だから、同じ正規表現パターンを複数回用いる場合は、
R1(わざわざ再定義ありがとう)のような
正規表現パターンオブジェクト+search()メソッドにすれば、
その度にコンパイルする無駄がないというのが理解できたよ。
そして、R2の使い方は見た目はわかりやすいけど、
プログラム動作的には(特に複数回行う場合)
あまり意味がないということみたいだね。
勉強になりました。
レスしてくれた方々、どうもありがとう。 anacondaでspyderをupdateする方法が分かる人おる?
ちな、「conda update spyder」という理屈も分からない魔法の言葉はとりま試してみたけどダメだった $ python3 -m pip install -U discord.py
でdiscord.pyというパッケージ?をダウンロードしましょうという記事がありました
パッケージをダウンロードするなら
$ pip install disord.py
でいいのではないでしょうか?
-mや-Uは何のためについているのですか? どう考えても5chに文章書いて聞くよりも
ググる方が簡単に答えが見つかるのですが
この事についてどう思ってるのでしょうか >>608
今の検索システムは役に立たない個人ブログとかまとめとかが
大量に引っかかって、ほんとに知りたい情報を探すのが大変だからな
2chでズバリ聞く方が簡単 このスレに質問してくる人のメンタルが判って良かったです
なるほど、そういう考え方をしてるのですね >>610
>>1も読めないバカのメンタルが分かって良かったです >>609
検索して見つけたブログ等の記事は一方通行だからね
わからないことがあったときに5chで質問するのは何もおかしいことじゃない 英語で検索しても出てこない情報がここであっさり見つかることもあるわけで
わりと機能しているスレなんだけどな ■ このスレッドは過去ログ倉庫に格納されています