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

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
垢版 |
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/
917デフォルトの名無しさん
垢版 |
2018/11/18(日) 02:29:02.25ID:+Y8H8lPp
オブジェクト指向言語のRubyが今大人気!!

世界最大のソフトウェア開発プラットフォームで最も人気なプログラミング言語は何なのか?
https://gigazine.net/news/20181116-top-programming-languages-2018/

さすがRuby!貫禄のランクイン!!
Railsで作られたサービスでの集計ということを差し引いてもすごい!
918デフォルトの名無しさん
垢版 |
2018/11/18(日) 09:13:17.46ID:ZxrLCeZc
>>914
response.encoding = response.apparent_encoding

追加してみ
2018/11/18(日) 13:07:11.78ID:OtDWWVpG
>>916
グロ
920デフォルトの名無しさん
垢版 |
2018/11/19(月) 16:41:17.86ID:6QwGyqzR
PILで画像に対してimage.getdataで値を取得すると、
ImagingCore object at 0x111993790 のようなメモリ上の値が得られますが、
これに類することはjavascriptで出来ますか?
2018/11/19(月) 18:41:55.53ID:hzrCQ9gE
>>920
javascriptスレできけ案件
2018/11/19(月) 18:57:29.17ID:Rj4PyB0Y
メモリ上の値じゃなくてアドレス情報だろ
923デフォルトの名無しさん
垢版 |
2018/11/19(月) 19:03:49.34ID:rVdz2W17
だから?
ここPythonスレだよ?
924デフォルトの名無しさん
垢版 |
2018/11/19(月) 20:44:02.95ID:m6msMsxr
超初心者なのですが、pythonでwebの画像を取得する方法がよくわかりません、、、
ggると大量取得のスクリプトは出てくるのですが、
http://〜〜〜.jpgという1枚を保存するにはどうすればいいのでしょうか。
どなたかご教授いただければ嬉しいです。
925デフォルトの名無しさん
垢版 |
2018/11/19(月) 21:05:05.45ID:rVdz2W17
アドレスバーに入れてエンター
右クリック
名前をつけて保存

1枚だけならこうすればいいだけだから出てこないんだと思われる
926デフォルトの名無しさん
垢版 |
2018/11/19(月) 21:10:19.46ID:m6msMsxr
説明が不足してました、失礼
勉強がてら自分でスクリプトを作りたくて
responseとbs4で、1枚目のurlからhttp://〜〜〜.jpgを
抜き取るとこまではできたのですが、そこからのダウンロード方法がよくわからないです
1枚のダウンロード方法が分かり次第for分で回す予定なのですが
927デフォルトの名無しさん
垢版 |
2018/11/19(月) 21:11:32.92ID:m6msMsxr
↑requestの間違いです
2018/11/19(月) 21:41:38.78ID:SMn8EX2d
r = requests.get('http://example.com/eroero.jpg', stream=True)
with open('eroero.jpg', 'wb') as f:
  while 1:
    bin = r.raw.read(128)
    if not w: break
    f.write(bin)
2018/11/19(月) 21:45:32.10ID:hzrCQ9gE
>>924
だから糞クローラつくるんじゃねえksg
くたばれ
窓からPC投げ捨てろ
2018/11/19(月) 21:53:27.71ID:SMn8EX2d
>>928
× if not w: break
○ if not bin: break
931デフォルトの名無しさん
垢版 |
2018/11/19(月) 22:03:04.22ID:m6msMsxr
>>928
ありがとうございます!
wをrに読み替えて実行したところ保存できたけど
処理が終わりませんでしたが、
>>930
で終わりました、勉強になりました!
バイナリ保存をもう少し勉強してみますm(_ _"m)
932デフォルトの名無しさん
垢版 |
2018/11/19(月) 22:20:46.67ID:OVa0imR9
>>931
930のbinとwって単なる変数だからな
openのモードのrwbとがと関係無いからな
2018/11/19(月) 22:36:23.06ID:lzm8caWs
>>918
ありがとうございます
追加したけどやっぱり文字化けしました
934デフォルトの名無しさん
垢版 |
2018/11/19(月) 22:48:30.82ID:m6msMsxr
>>932
なるほどです
2018/11/19(月) 23:17:27.92ID:057j8H5Q
ダウンロードして保存するコマンドは、curl, wget
2018/11/20(火) 00:36:50.22ID:2X5h674N
以下は何をしているのでしょうか?
同じ物を代入したり返しているようにしか見えないです
お助け下さい・・・

https://github.com/Theano/Theano/blob/master/theano/compat/__init__.py

59行目
cmp = cmp

63行目
def decode(x):
return x
2018/11/20(火) 05:15:47.87ID:0YIMqUF3
ユーザーに派生クラスを作ってもらうための、ひな形・マーカーメソッドかも。
派生クラスを作らなかった場合の、デフォルトの動作なのかも

例えば、Ruby で抽象(マーカー)メソッドを作れば、
もし派生クラスB で、メソッドa を再定義(override)しなければ、例外をraise するから、
ユーザーは派生クラスで、メソッドa を再定義しなければならない

つまり、プログラマーに注意喚起する印・マーカー

class A
def a
raise NotImplementedError, "未実装です"
end
end

class B < A
end

B.new.a # 未実装です
938937
垢版 |
2018/11/20(火) 05:21:34.81ID:0YIMqUF3
ライブラリの作者は、様々な、decode の実装方法があるから、ひな形だけは作っておくので、
ユーザーは派生クラスで、具体的なdecode の処理を、再定義して使ってください

もし再定義しなければ、何も処理しません
2018/11/20(火) 09:32:49.23ID:2X5h674N
>>937-938
ありがとうございました、そういう事だったのですね
2018/11/20(火) 12:30:52.12ID:xneveUXp
>>939
いやそれ間違ってるから。

python2、python3両方で使えるようにそれぞれメソッドが定義してあって、
たまたまpython2のほうは演算する必要がないから引数をそのまま返しているだけ。

そいつはマ板で有名なpython知らないruby荒らしだから無視したほうがいいよ
941デフォルトの名無しさん
垢版 |
2018/11/20(火) 13:05:13.83ID:ZtIBLsed
>>937
さすがRuby!
圧倒的ランクイン!!

https://gigazine.net/news/20181116-top-programming-languages-2018/
https://www.softantenna.com/wp/software/the-state-of-the-octoverse-2018/
https://www.softantenna.com/wp/software/ieee-spectrum-top-programming-languages-2018/
https://findy-code.io/engineer-lab/github-programming-language-ranking
https://i.imgur.com/0YbMsqj.jpg
942デフォルトの名無しさん
垢版 |
2018/11/20(火) 13:34:07.29ID:jmuJusIM
https://docs.python.org/ja/3/library/exceptions.html#NotImplementedError
https://docs.python.org/ja/3/library/constants.html
2018/11/20(火) 16:39:53.72ID:5NbKWroI
>>933
しぇばん、importが済んだ後あたりに

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

って書いてみて
2018/11/20(火) 19:08:18.20ID:PIfvSzhu
ディレクトリ内に
aaa_000.txt
aaa_001.txt
  :
aaa_100.txt てな感じでファイルが保存されてたとします。
aaa_000.txt以外をglob.glob()で一覧化して取り出したいんですが
glob.globの引数に指定する正規表現、どうすればいけますでしょうか???
2018/11/20(火) 19:13:57.66ID:5NbKWroI
!(^000$) じゃね?
2018/11/20(火) 19:15:38.40ID:5NbKWroI
禿しくまちがってた

^(?!000)$
2018/11/20(火) 19:52:04.79ID:PIfvSzhu
import glob
l = glob.glob(r"^(?!000)$")
print(l)
こうですか? なんかダメみたいです(´・ω・`)

l = glob.glob(r"aaa_(?!000)$")
l = glob.glob(r"*(?!000)$")   も試してみましたがダメでした。
2018/11/20(火) 20:46:06.89ID:eXMfunJO
素直にre使ってりゃ1分で終わってたな
2018/11/20(火) 20:48:08.12ID:d/DSkvWp
globは正規表現使えないぞ。
使えるのはワイルドカードだけ
2018/11/20(火) 20:48:55.37ID:5NbKWroI
んんんんn…
l = glob.glob(r"aaa_(?!000)[0-9]*\.txt")
でどうよ
2018/11/20(火) 20:49:50.73ID:5NbKWroI
>>949
mjd

>>947
全部取り出してから
そのリストから
aaa_000.txtだけさくーじょするのが早い(´・ω・`)
2018/11/20(火) 20:51:12.06ID:+8Izpd7U
>>951
その方が後から見てわかりやすいしな
2018/11/20(火) 21:05:36.49ID:5mSMf66i
あああ、mjdって「マジで」かー
2018/11/20(火) 21:13:03.42ID:aqI13PjQ
いくらくだすれとはいえこんな頭のおかしい奴が回答者だとは…
2018/11/20(火) 21:13:50.48ID:5NbKWroI
初心者の
初心者による
初心者のための
互助すれ
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使う必要性はないと思う
2018/11/20(火) 21:15:59.61ID:3m3Squu1
Pythonのtime sleepとcrontabのコードって相性悪くない?
2018/11/20(火) 21:19:44.13ID:5NbKWroI
俺の環境(python2.7 Win7(XPからのアプデ))では
time sleepは常にラグい (`・ω・´)キリッ
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"}]
が一番スマート()か
960デフォルトの名無しさん
垢版 |
2018/11/20(火) 21:36:20.21ID:lC+kMZiu
glob.glob('aaa_*.txt').remove('aaa_000.txt')
2018/11/20(火) 21:46:55.78ID:PIfvSzhu
>>956
>>959
サンクス、コピペしたけど動かなかったので諦めました

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


>>960

           .-´    ``ヽ   
          /  ヽー     `ヽ
         / ノ    (O )ノ ̄ ̄`ヽ、―ニ  
        / (●) __)⌒/ ´`ヽ _  三,:三ー三,:
        | ::⌒(__ノ/  ノヽ--/ ̄ ,    `   ` ̄ ̄ ̄
       。ヽ 。   )(  }.  ...|  /!    
          ヽo (__ン  }、ー‐し'ゝL _  
         人  ー   jr--‐‐'´}    ;ーー------
        /        ヾ---‐'ーr‐'"==
                    |
962デフォルトの名無しさん
垢版 |
2018/11/20(火) 22:15:47.35ID:lC+kMZiu
>>960
何でダメなのかわからんかったけどremoveメソッドはNoneを返すんだな

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

>>961
ごめんね
2018/11/21(水) 01:45:07.75ID:yscr9wE/
Ruby で、配列の差集合を使った

ary = Dir.glob( 'aaa_*.txt' ) - [ 'aaa_000.txt' ]
964デフォルトの名無しさん
垢版 |
2018/11/21(水) 02:04:45.67ID:ILAAUKO6
Rubyが大人気!Rubyが大人気!
学ぶ価値がある大人気言語Ruby!!

https://gigazine.net/news/20181116-top-programming-languages-2018/
https://www.softantenna.com/wp/software/the-state-of-the-octoverse-2018/
https://www.softantenna.com/wp/software/ieee-spectrum-top-programming-languages-2018/
https://findy-code.io/engineer-lab/github-programming-language-ranking
https://i.imgur.com/0YbMsqj.jpg
2018/11/21(水) 18:00:19.78ID:/haBP7x7
なぜpathlib使わないのか
966デフォルトの名無しさん
垢版 |
2018/11/21(水) 18:42:34.45ID:vOPCMSrj
bashからpythonのCGIプログラムを実行するときにGETパラメータを渡す方法を教えてください。
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
2018/11/21(水) 20:07:16.16ID:NMvk2xsS
http://example.com/cgi-bin/recv.php

pythonのcgiを置いて動かしてるアドレスに読み替えてくれ
2018/11/21(水) 20:07:21.27ID:vOPCMSrj
デバックしたいです。
2018/11/21(水) 20:14:02.86ID:NMvk2xsS
pythonのCGIン中のimportんところの最後に

import cgitb
cgitb.enable()

と書け

デバッグが終わったら消すのを忘れるな
忘れるとたいへんなことがおきる
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
972デフォルトの名無しさん
垢版 |
2018/11/21(水) 20:50:52.10ID:jrFgFGaV
‘/home/hoge/foo/*.txt’ みたいなパスが与えられてglobしたい時って、pathlibだと一度切り分けて
Path(‘/home/hoge/foo’).glob(‘*.txt’)
とするしか無い?
glob.globなら最初のパスを丸ごと与えて終わるけど
973デフォルトの名無しさん
垢版 |
2018/11/21(水) 21:06:34.58ID:JM/nMfDs
pathlib使わんくてもええんやで?なにに追い立てられとるんやおまえら?
2018/11/22(木) 00:08:45.16ID:VnO3ZoaR
Ruby では、絶対・相対パスの両方が使えるよ

Dir.glob( 'C:/Users/Owner/Documents/*.txt' )
2018/11/22(木) 08:08:40.14ID:MlwCwGep
>>974
荒らし氏ね
976デフォルトの名無しさん
垢版 |
2018/11/22(木) 08:55:38.42ID:GbIN7rVe
>>974
そんな基本的なことで自慢しなけりゃならないとはよっぽどショボい言語なんだなww
>>964 という状況に追い込まれるのも当然な気がするwww
2018/11/22(木) 09:44:14.26ID:5DqVDDdG
ガイジしか使ってないし
開発者もガイジ揃いだから
2018/11/22(木) 11:17:29.92ID:yaFldicH
Rubyはガイジ隔離言語として世の役に立ってるよなw
2018/11/22(木) 12:06:33.50ID:kIWLxEQb
(Rubyガイジ)うんこ…うんこ…
980デフォルトの名無しさん
垢版 |
2018/11/22(木) 13:34:33.95ID:blyr971h
次スレよろ
2018/11/22(木) 17:10:16.21ID:JDIt5Mgb
( ・∀・)ノフォラァヨ!!---===≡≡≡ くだすれPython(超初心者用) その40
http://mevius.5ch.net/test/read.cgi/tech/1542874174/
2018/11/23(金) 16:02:50.08ID:joE0voDR
rate="486,380(26.03%)"
みたいなのから正規表現で26.03だけ取り出したいんですけどどうすればいいですか?
最初はrate[-7:-2]で取り出そうと思ったんですけど、たまに"500(3.27%)みたいな%が一桁のデータがあって、出力すると(3.27になり、エラーの原因になってしまうんです
つまり()の中の数字だけ取り出す方法を教えてください
983デフォルトの名無しさん
垢版 |
2018/11/23(金) 16:34:17.54ID:e4GZHgy/
>>982
re.compile(r'\((.*)\%\)', re.I)
2018/11/23(金) 17:04:36.40ID:joE0voDR
>>983
神がいた
最後のre.lがあるとなんかエラー起きたけどちょっと弄ったらできたわ
ありがとうございます
正規表現は素人には難しい
985デフォルトの名無しさん
垢版 |
2018/11/23(金) 17:08:26.06ID:f04GZ1ux
>>982
'\d+\.\d+(?=\%)'
2018/11/23(金) 17:41:39.39ID:joE0voDR
>>985
こっちでもできた
しゅごい
2018/11/23(金) 18:29:59.34ID:cGOad0jL
>>986
かわいい
掘らせて ハアハア(´Д`*)
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]は、( )でキャプチャーした部分
2018/11/24(土) 08:22:15.36ID:sJe2ncgH
>>988
いい加減にしろよ屑
990デフォルトの名無しさん
垢版 |
2018/11/24(土) 09:57:01.31ID:hG+y0dS8
>>988
圧倒的大人気言語Ruby!!

https://gigazine.net/news/20181116-top-programming-languages-2018/
https://www.softantenna.com/wp/software/the-state-of-the-octoverse-2018/
https://www.softantenna.com/wp/software/ieee-spectrum-top-programming-languages-2018/
https://findy-code.io/engineer-lab/github-programming-language-ranking
https://i.imgur.com/0YbMsqj.jpg

大人気!!!
991デフォルトの名無しさん
垢版 |
2018/11/24(土) 11:16:19.41ID:ZWAqZgZk
>>990
記事読んでみたらRuby落ち目で草
992デフォルトの名無しさん
垢版 |
2018/11/24(土) 12:12:32.95ID:4kdGLnPd
re.search と re.findall どっち使うのが良いの?
web で調べると re.search 使ってる人や薦める人が多いみたいだけど
実際は re.findall の方が使いやすいと感じる
2018/11/24(土) 12:22:51.14ID:rqBWhuzZ
お前が使いやすいと思うものを使え
お前の感性なんざ知らねえよ
2018/11/24(土) 12:25:19.78ID:rqBWhuzZ
だいたいre.searchを薦めてる奴はその理由を書いてるだろ
(書いてない奴はゴミだから信用するな)
それを理解した上でre.findallの方がというなら、もはや否定する理由はない
お前の中ではそうなんだな、で終わりだ
995デフォルトの名無しさん
垢版 |
2018/11/24(土) 13:07:33.24ID:b4dZse+n
>>994
だったら最初から黙っとけよ、チンカス
996デフォルトの名無しさん
垢版 |
2018/11/24(土) 13:11:24.69ID:4kdGLnPd
finditer が良さそうなのでこれにします
本当にありがとうございました
仲良くしてね
2018/11/24(土) 14:00:15.36ID:f9pHxWoA
一個見つかれば良い状況で
searchではなくfinditer使うのは面倒くさいだけのような
finditerはマッチしてもしなくてもイテレータが帰ってきちゃう
2018/11/24(土) 14:17:31.53ID:S/+07wK4
じつにくだすれらしい
くだくだなながれですね (´・ω・`)
999デフォルトの名無しさん
垢版 |
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
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 92日 6時間 34分 59秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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