くだすれPython(超初心者用) その39

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2018/08/24(金) 07:50:35.97ID:VD4/++xS
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで

前スレ
くだすれPython(超初心者用) その38
https://mevius.5ch.net/test/read.cgi/tech/1526522954/

0952デフォルトの名無しさん2018/11/20(火) 20:51:12.06ID:+8Izpd7U
>>951
その方が後から見てわかりやすいしな

0953デフォルトの名無しさん2018/11/20(火) 21:05:36.49ID:5mSMf66i
あああ、mjdって「マジで」かー

0954デフォルトの名無しさん2018/11/20(火) 21:13:03.42ID:aqI13PjQ
いくらくだすれとはいえこんな頭のおかしい奴が回答者だとは…

0955デフォルトの名無しさん2018/11/20(火) 21:13:50.48ID:5NbKWroI
初心者の
初心者による
初心者のための
互助すれ

0956デフォルトの名無しさん2018/11/20(火) 21:15:21.06ID:yKairBEQ
[x for x in glob.glob() if int("".join(re.findall("\d", x))) > 0]
でいけるかな
ファイル名が決め打ちで分かってるなら
[x for x in glob.glob() if int(x.replace("aaa_","").replace(".txt","")) > 0]
でもいける
でも今日日os.scandir()とかあるのにglob使う必要性はないと思う

0957デフォルトの名無しさん2018/11/20(火) 21:15:59.61ID:3m3Squu1
Pythonのtime sleepとcrontabのコードって相性悪くない?

0958デフォルトの名無しさん2018/11/20(火) 21:19:44.13ID:5NbKWroI
俺の環境(python2.7 Win7(XPからのアプデ))では
time sleepは常にラグい (`・ω・´)キリッ

0959デフォルトの名無しさん2018/11/20(火) 21:22:17.92ID:yKairBEQ
[x for x in glob.glob() if {y for y in x if y.isdigit() and y != "0"}]
が一番スマート()か

0960デフォルトの名無しさん2018/11/20(火) 21:36:20.21ID:lC+kMZiu
glob.glob('aaa_*.txt').remove('aaa_000.txt')

0961デフォルトの名無しさん2018/11/20(火) 21:46:55.78ID:PIfvSzhu
>>956
>>959
サンクス、コピペしたけど動かなかったので諦めました

>でも今日日os.scandir()とかあるのにglob使う必要性はないと思う
os.scandir ←これ知らんかたわw これでなんとかなりそうですw


>>960

           .-´    ``ヽ   
          /  ヽー     `ヽ
         / ノ    (O )ノ ̄ ̄`ヽ、―ニ  
        / (●) __)⌒/ ´`ヽ _  三,:三ー三,:
        | ::⌒(__ノ/  ノヽ--/ ̄ ,    `   ` ̄ ̄ ̄
       。ヽ 。   )(  }.  ...|  /!    
          ヽo (__ン  }、ー‐し'ゝL _  
         人  ー   jr--‐‐'´}    ;ーー------
        /        ヾ---‐'ーr‐'"==
                    |

0962デフォルトの名無しさん2018/11/20(火) 22:15:47.35ID:lC+kMZiu
>>960
何でダメなのかわからんかったけどremoveメソッドはNoneを返すんだな

x = glob.glob('aaa_*.txt')
x.remove('aaa_000.txt')

>>961
ごめんね

0963デフォルトの名無しさん2018/11/21(水) 01:45:07.75ID:yscr9wE/
Ruby で、配列の差集合を使った

ary = Dir.glob( 'aaa_*.txt' ) - [ 'aaa_000.txt' ]

0964デフォルトの名無しさん2018/11/21(水) 02:04:45.67ID:ILAAUKO6

0965デフォルトの名無しさん2018/11/21(水) 18:00:19.78ID:/haBP7x7
なぜpathlib使わないのか

0966デフォルトの名無しさん2018/11/21(水) 18:42:34.45ID:vOPCMSrj
bashからpythonのCGIプログラムを実行するときにGETパラメータを渡す方法を教えてください。

0967デフォルトの名無しさん2018/11/21(水) 20:05:39.22ID:NMvk2xsS
get1=get1_val
get2=get2_val
が渡したいとすると

url="http://example.com/cgi-bin/recv.php?get1=get1_val&;get2=get2_val"
curl $url

0968デフォルトの名無しさん2018/11/21(水) 20:07:16.16ID:NMvk2xsS
http://example.com/cgi-bin/recv.php

pythonのcgiを置いて動かしてるアドレスに読み替えてくれ

0969デフォルトの名無しさん2018/11/21(水) 20:07:21.27ID:vOPCMSrj
デバックしたいです。

0970デフォルトの名無しさん2018/11/21(水) 20:14:02.86ID:NMvk2xsS
pythonのCGIン中のimportんところの最後に

import cgitb
cgitb.enable()

と書け

デバッグが終わったら消すのを忘れるな
忘れるとたいへんなことがおきる

0971デフォルトの名無しさん2018/11/21(水) 20:16:30.77ID:NMvk2xsS
>>967-968 あとで見返す人も居ないと思うがもうちょっとわかりやすく書いておこう

get1としてget1_val
get2としてget2_val
が渡したい


Apacheなんかでlocalhostを動かしていて
bash-cgiふぉるだんなかに
ターゲットとなるhoge.cgiが置いてある
とすると

url="http://localhost/bash-cgi/hoge.cgi?get1=get1_val&;get2=get2_val"
curl $url

0972デフォルトの名無しさん2018/11/21(水) 20:50:52.10ID:jrFgFGaV
‘/home/hoge/foo/*.txt’ みたいなパスが与えられてglobしたい時って、pathlibだと一度切り分けて
Path(‘/home/hoge/foo’).glob(‘*.txt’)
とするしか無い?
glob.globなら最初のパスを丸ごと与えて終わるけど

0973デフォルトの名無しさん2018/11/21(水) 21:06:34.58ID:JM/nMfDs
pathlib使わんくてもええんやで?なにに追い立てられとるんやおまえら?

0974デフォルトの名無しさん2018/11/22(木) 00:08:45.16ID:VnO3ZoaR
Ruby では、絶対・相対パスの両方が使えるよ

Dir.glob( 'C:/Users/Owner/Documents/*.txt' )

0975デフォルトの名無しさん2018/11/22(木) 08:08:40.14ID:MlwCwGep
>>974
荒らし氏ね

0976デフォルトの名無しさん2018/11/22(木) 08:55:38.42ID:GbIN7rVe
>>974
そんな基本的なことで自慢しなけりゃならないとはよっぽどショボい言語なんだなww
>>964 という状況に追い込まれるのも当然な気がするwww

0977デフォルトの名無しさん2018/11/22(木) 09:44:14.26ID:5DqVDDdG
ガイジしか使ってないし
開発者もガイジ揃いだから

0978デフォルトの名無しさん2018/11/22(木) 11:17:29.92ID:yaFldicH
Rubyはガイジ隔離言語として世の役に立ってるよなw

0979デフォルトの名無しさん2018/11/22(木) 12:06:33.50ID:kIWLxEQb
(Rubyガイジ)うんこ…うんこ…

0980デフォルトの名無しさん2018/11/22(木) 13:34:33.95ID:blyr971h
次スレよろ

0981デフォルトの名無しさん2018/11/22(木) 17:10:16.21ID:JDIt5Mgb
( ・∀・)ノフォラァヨ!!---===≡≡≡ くだすれPython(超初心者用) その40
http://mevius.5ch.net/test/read.cgi/tech/1542874174/

0982デフォルトの名無しさん2018/11/23(金) 16:02:50.08ID:joE0voDR
rate="486,380(26.03%)"
みたいなのから正規表現で26.03だけ取り出したいんですけどどうすればいいですか?
最初はrate[-7:-2]で取り出そうと思ったんですけど、たまに"500(3.27%)みたいな%が一桁のデータがあって、出力すると(3.27になり、エラーの原因になってしまうんです
つまり()の中の数字だけ取り出す方法を教えてください

0983デフォルトの名無しさん2018/11/23(金) 16:34:17.54ID:e4GZHgy/
>>982
re.compile(r'\((.*)\%\)', re.I)

0984デフォルトの名無しさん2018/11/23(金) 17:04:36.40ID:joE0voDR
>>983
神がいた
最後のre.lがあるとなんかエラー起きたけどちょっと弄ったらできたわ
ありがとうございます
正規表現は素人には難しい

0985デフォルトの名無しさん2018/11/23(金) 17:08:26.06ID:f04GZ1ux
>>982
'\d+\.\d+(?=\%)'

0986デフォルトの名無しさん2018/11/23(金) 17:41:39.39ID:joE0voDR
>>985
こっちでもできた
しゅごい

0987デフォルトの名無しさん2018/11/23(金) 18:29:59.34ID:cGOad0jL
>>986
かわいい
掘らせて ハアハア(´Д`*)

0988デフォルトの名無しさん2018/11/24(土) 03:48:05.11ID:01jBobXF
Ruby で作った。
正規表現内で特別な意味をもつ、特殊文字を判別する

rp = Regexp.escape "(%)"
puts rp #=> \(%\)

( ) は特殊文字なので、それらから特別な意味を除いて、単なる文字として使うには、
前に、\(逆スラッシュ)を付けて、エスケープする

rate = "486,380(26.03%)"

md = rate.match /\((.*)%\)/
puts md[ 0 ] #=> (26.03%)
puts md[ 1 ] #=> 26.03

外側の( ) は、単なる文字として使うので、\( \) とエスケープするが、
内側の( ) は、キャプチャーの意味なので、エスケープしない

md[0]はマッチした文字列で、md[1]は、( )でキャプチャーした部分

0989デフォルトの名無しさん2018/11/24(土) 08:22:15.36ID:sJe2ncgH
>>988
いい加減にしろよ屑

0990デフォルトの名無しさん2018/11/24(土) 09:57:01.31ID:hG+y0dS8

0991デフォルトの名無しさん2018/11/24(土) 11:16:19.41ID:ZWAqZgZk
>>990
記事読んでみたらRuby落ち目で草

0992デフォルトの名無しさん2018/11/24(土) 12:12:32.95ID:4kdGLnPd
re.search と re.findall どっち使うのが良いの?
web で調べると re.search 使ってる人や薦める人が多いみたいだけど
実際は re.findall の方が使いやすいと感じる

0993デフォルトの名無しさん2018/11/24(土) 12:22:51.14ID:rqBWhuzZ
お前が使いやすいと思うものを使え
お前の感性なんざ知らねえよ

0994デフォルトの名無しさん2018/11/24(土) 12:25:19.78ID:rqBWhuzZ
だいたいre.searchを薦めてる奴はその理由を書いてるだろ
(書いてない奴はゴミだから信用するな)
それを理解した上でre.findallの方がというなら、もはや否定する理由はない
お前の中ではそうなんだな、で終わりだ

0995デフォルトの名無しさん2018/11/24(土) 13:07:33.24ID:b4dZse+n
>>994
だったら最初から黙っとけよ、チンカス

0996デフォルトの名無しさん2018/11/24(土) 13:11:24.69ID:4kdGLnPd
finditer が良さそうなのでこれにします
本当にありがとうございました
仲良くしてね

0997デフォルトの名無しさん2018/11/24(土) 14:00:15.36ID:f9pHxWoA
一個見つかれば良い状況で
searchではなくfinditer使うのは面倒くさいだけのような
finditerはマッチしてもしなくてもイテレータが帰ってきちゃう

0998デフォルトの名無しさん2018/11/24(土) 14:17:31.53ID:S/+07wK4
じつにくだすれらしい
くだくだなながれですね (´・ω・`)

0999デフォルトの名無しさん2018/11/24(土) 14:24:37.27ID:4kdGLnPd
何個見つかるか事前に判らないので
match したかしなかったか調べるのに if m is None: みたいな書き方するなら
for _ in iter: でする方が楽なんです
条件後付けと言われればその通りですが

1000デフォルトの名無しさん2018/11/24(土) 14:25:34.56ID:4kdGLnPd
ume

10011001Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 92日 6時間 34分 59秒

10021002Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php

レス数が1000を超えています。これ以上書き込みはできません。