くだすれPython(超初心者用) その39
レス数が1000を超えています。これ以上書き込みはできません。
0518デフォルトの名無しさん
垢版 |
2018/10/23(火) 13:20:20.07ID:ki4w8hD+
>>516
バージョンも同じなら、理由はわからんなぁ…
0519デフォルトの名無しさん
垢版 |
2018/10/23(火) 17:07:59.89ID:J7zWeAP4
みんなやさしいな
0520デフォルトの名無しさん
垢版 |
2018/10/23(火) 18:06:12.08ID:Afmb5nM2
別のフォルダに入った同名ファイルをjoblibのParallelで処理するために以下のようなコードを書いたところ1番目のフォルダの結果が常に出てきてしまうんだけど原因分かる?

・環境
Python: 3.7.0
joblib: 0.12.5
Jupyter Notebook上で実行

・ファイル
C:\a\a.txt -> 「1」とだけ半角で書かれたテキストファイル
C:\b\a.txt -> 「2」とだけ半角で書かれたテキストファイル

・コード
import numpy as np
from joblib import Parallel, delayed

# 実際はもっと大容量のファイルに対して重い処理を行う
def read_file():
return np.loadtxt("a.txt")

os.chdir(r"C:\a")
result1 = Parallel(n_jobs=-1)(delayed(test)() for _ in range(1))

os.chdir(r"C:\b")
result2 = Parallel(n_jobs=-1)(delayed(test)() for _ in range(1))

# 空のフォルダcに移動する
os.chdir(r"C:\c")
result3 = Parallel(n_jobs=-1)(delayed(test)() for _ in range(1))

print(result1) # 出力 : [array(1.)]
print(result2) # 出力 : [array(1.)]・・・[array(2.)]が出力されないのはなぜ?
print(result3) # 出力 : [array(1.)]
0521デフォルトの名無しさん
垢版 |
2018/10/23(火) 22:14:21.56ID:86mV9f+c
ファイルの数を返すメソッドはありますか?
例えばsrcの下にディレクトリaとbがあって
それぞれのディレクトリにa1.txt〜a100.txt、b1.txt〜b100.txtとファイルがあった時に
200と返してくれるメソッドはありますか?
defで関数とか作らず1行で済む方法を探しています。
0523デフォルトの名無しさん
垢版 |
2018/10/23(火) 22:36:02.00ID:BDP8ufz9
いまやってみたらそのコードでは2が帰って来ました
aとbの2つのディレクトリがあるから2なのですかね?
欲しいのはそのまた下にあるファイルの数でした
0524デフォルトの名無しさん
垢版 |
2018/10/23(火) 22:46:04.08ID:oFF/C26V
Pythonは詳しく無いけど、そう言うは再帰でディレクトリが無い最下層まで潜るコードってよく見るね。
0525デフォルトの名無しさん
垢版 |
2018/10/23(火) 23:35:56.37ID:EZC/vVVW
>>521
import glob
len(glob.glob(“**/*”, recursive=True))
0526デフォルトの名無しさん
垢版 |
2018/10/23(火) 23:36:52.55ID:EZC/vVVW
src/**/* だったわ
0527デフォルトの名無しさん
垢版 |
2018/10/23(火) 23:53:26.39ID:BmpWcPqj
>>521
sum([len(files) for root, dirs, files in os.walk("src")])
0528デフォルトの名無しさん
垢版 |
2018/10/24(水) 00:12:08.40ID:2LYWqLo0
>>504
パス・カレントディレクトリとか、起動時オプションとか。
別の実行ファイルを起動しているとか

IDE の前提条件は、プロジェクトごとだろ。
プロジェクトフォルダ・プロジェクト設定ファイルありきだろ。
プロジェクトの条件を満たしていないのかも?

プロジェクトとシェルから実行する形式とは、異なるような気がする

そのエラーメッセージをここにも書いて、それで検索すれば?

>>513-517
「python sqlalchemy filter vs filter_by」で検索!
0531デフォルトの名無しさん
垢版 |
2018/10/24(水) 15:19:12.25ID:B3/hQHxI
521,523です
教えていただいたのをやってみました。
525さんの方法は、フォルダーの数が含まれていました。結果は202が返りました。
527さんの方法は、ちょうど200が返りました。
529さんの方法は、windowsなので出来ませんでした。

これにて問題は解決しました。皆さまありがとうございます。
0532514
垢版 |
2018/10/24(水) 17:55:05.58ID:Vc8wznQf
https://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html

>Note that WebKitWebView is scrollable by itself, so you don't need to embed it in a GtkScrolledWindow.

って書いてありました。スクロールをGtkで担当していないから、他のgtk3アプリのようにタッチでスクロールできないようです。でも、だったらなんで>>514のリンク先の人はGTK.gestureでできたんだろう・・・
0533デフォルトの名無しさん
垢版 |
2018/10/24(水) 18:10:34.94ID:95IsyUjL
>なんといっても、800g弱とは思えない軽さと、
薄型コンパクトな筐体はタブレットと同様に、
「出番はないかもしれないけど常時携行しても良い」レベルです。


いざ使おうとすると windows update が始まって再起動…何時間も待たされる…鞄にしまう。

放置

「出番はないかもしれないけど常時携行しても良い」

また持ち出す

いざ使おうとすると windows update が始まって再起動…何時間も待たされる…鞄にしまう。

放置
0534デフォルトの名無しさん
垢版 |
2018/10/24(水) 18:40:13.35ID:IR3xnlxd
リストにn個の要素があります。
このリストの要素から2個をランダムに選んだペアをm組作りたいです。
ただしペアを重複しないようにしたいのですが、
どうすれば実装できるでしょうか。もしくはライブラリがありますか?
いくら考えてもペアが重複してしまいます。(特に(a,b)と(b,a)のようなペアが出来てしまいます)

n=[1, 2, ... n]
m=3
new_n=f(n, m)
new_n
=[(1,8), (45,n), (n-2, 20)]

みたいになるfを探しています。
0537デフォルトの名無しさん
垢版 |
2018/10/24(水) 18:57:08.14ID:Uqd3UckS
>>532
ここで回答を待つよりリンク先に直凸したほうがはやいきががが

Why could you "scroll" with GTK.gesture?
0538デフォルトの名無しさん
垢版 |
2018/10/24(水) 19:10:02.77ID:TphPHDjb
scrapyとXParhについて教えてください

https://ideone.com/af79WT
うまく動いてくれないです。

67行目からの関数が間違えてると思うんですが、77行目のp_templateはどう書くのが正しいんでしょうか?

9行目は
# https://github.com/Kyrand/dataviz-with-python-and-js

17行目は
BASE_URL = 'http://en.wikipedia.org'

40行目は
start_urls = ["https://en.wikipedia.org/wiki/List_of_Nobel_laureates_by_country";]

80行目は
# https://www.wikidata.org/wiki/Q155525

です。
0539デフォルトの名無しさん
垢版 |
2018/10/24(水) 19:14:14.74ID:IR3xnlxd
>>535
これは指定した組み合わせ数に達したら中断する方法はありますか?
実際にはnとmが両方4000程なので、nC2を全て取得するのは冗長と思われるので・・
とはいえやりたいことにとても近いのでありがとうございます。

>>536
実際にはm>n/2となるので難しいと思いました。
すみませんこちらの例題が悪かったですね・・
0540デフォルトの名無しさん
垢版 |
2018/10/24(水) 19:14:37.21ID:/bxb9sB2
>>534
itertoolsとrandom.sampleを組み合わせる
import itertools, random
def pair(n, m):
combi = list(itertools.combinations(n, m))
return random.sample(combi, m)
0542デフォルトの名無しさん
垢版 |
2018/10/24(水) 20:02:29.89ID:Uqd3UckS
>>539
いつでもやめれるぞ

おれはあほだから
count=0からカウントアップしていって
欲しい組数になったらbreak
とか思いつくが
もっとスマートなやり方あるとおもう
0544デフォルトの名無しさん
垢版 |
2018/10/24(水) 20:26:18.89ID:Uqd3UckS
>>538
大抵は日付Gregorianで書いてあるとおもうから
文字列Gregorianの 前の文字列を探したらよさげなんだが

80行目のアドレスにアクセスして見てみた
Xpathがもはや538が書いたソースと違っつる
(/html/body/pre/span[1577] ってなってて divに1ツも入ってないYO)ので
具体的にどうとは書けない
0545デフォルトの名無しさん
垢版 |
2018/10/24(水) 23:59:09.70ID:2LYWqLo0
wikipedia みたいに、しょっちゅう構成が変化するものを、
XPath みたいに順番で指定するものは、動かない

div[2]/div[1]/div/div[2]/div[2]/div[1]
「div の3つ目の、div の2つ目の...」

CSS セレクターみたいに、id, class などの意味で指定する方が、構成の変化に強い。
まだマシ

HTML を解析して、id, class などで限定していくのが基本
0546デフォルトの名無しさん
垢版 |
2018/10/25(木) 01:12:10.66ID:33Q6k0An
今日突然プログラミングに興味を持ちとりあえずpythonをインストールした初心者です。

連番を作成するとき range(10)と打ち込んでも結果がrange(0,10)になってしまいます
解説サイトを見ると9まで表示されるらしいのですが、なぜrange(0,10)になってしまうのでしょうか?
バージョンは3.7.1です
0548デフォルトの名無しさん
垢版 |
2018/10/25(木) 02:27:15.39ID:ZE3NVml1
Ruby の範囲は、 終端を含む、.. と、含まない ... がある

0..3 → 0〜3
0...3 → 0〜2

python では、終端を含まないのかな?

推測だけど、range(10)と引数が1つの場合は、終端のみが指定されたとみなすのだろう。
その場合、始端は0 が指定されたのと同じ

つまり、range(0,10)と同じ
0549デフォルトの名無しさん
垢版 |
2018/10/25(木) 07:58:15.11ID:ANca8D/1
>>544
538を書いたのは昨日だけど、今試しても80行目のアドレスのdate of birthのXPathは
//*[@id="P569"]/div[1]/div/a

8 October 1927の部分のXPathは
//*[@id="q155525$82312275-D23F-4048-A710-6EC6AB12C2C2"]/div[2]/div[1]/div/div[2]/div[2]/div[1]
でしたよ

>>544
>>545
583のスクリプトだと誕生日、死亡日、出生地、死亡地、性別を77行目の天ぷらで取得するようになってるけれど、もう天ぷらを改変して使うことも無理だから、項目一つ一つそれぞれ取得しないといけないって事ですか?
0550デフォルトの名無しさん
垢版 |
2018/10/25(木) 08:09:34.19ID:ANca8D/1
https://www.wikidata.org/wiki/Q155525

この表の左側(date of birthとかplace of birth)のdiv classは
wikibase-statementgroupview-property-label

表示の真ん中の8 October 1927や、Bahía Blancaのdiv classは
wikibase-snakview-value wikibase-snakview-variation-valuesnak
のようでした。
これらを使って >>583 に当てはめる事できますか?
0551545
垢版 |
2018/10/25(木) 08:57:54.49ID:ZE3NVml1
例えば、Ruby で、5ch の書き込み内のa タグを、XPath で指定するのは、こういう感じ

# a を含む、post_node だけを抜き出す。descendant は子孫、ancestor は祖先
# div.thread > div.post > div.message > span > a

post_nodes = doc.xpath "//div[@class='thread']/div[@class='post']/div[@class='message']/descendant::a/ancestor::div[@class='post']"

/div[2]/div[1]/div/div[2]/div[2]/div[1]
こういう、1, 2 などの順番では指定しない

順番で指定すると、サーバー側で、HTML ページを作る時に、順番が変わるかもしれない

普通はXPathではなく、以下のような、CSS セレクターで指定する。
div.thread > div.post > div.message > span > a

thread クラスが付いた、div 要素の直下の、
post クラスが付いた、div 要素の直下の、
message クラスが付いた、div 要素の直下の、
span 要素の直下の、a 要素

ブラウザのF12 開発者ツールを起動して、自分でHTMLを解析する
0552545
垢版 |
2018/10/25(木) 09:17:05.90ID:ZE3NVml1
Chrome で、自分が解析したい要素上で、右クリックメニューで検証を押すと、F12 開発者ツールが起動する

表示されたHTML 上で、右クリックメニューでCopy の所から、
XPath, selector(CSS selector)をコピーできる

例えば、このスレの書き込み内のa タグを、検証してみると、
XPath, CSS selectorは、

//*[@id="550"]/div[2]/span/a[2]
550 > div.message > span > a.reply_link

id が550 の要素の直下の、
message クラスが付いた、div 要素の直下の、
span 要素の直下の、
reply_link クラスが付いた、a 要素

ただし、id は550など、先頭文字が数字では始められないから、これは間違い。
5ch の開発者が間違っている。バグ
0553545
垢版 |
2018/10/25(木) 09:39:35.73ID:ZE3NVml1
date of birth の、XPath, CSS selectorは、

//*[@id="P569"]/div[1]
#P569 > div.wikibase-statementgroupview-property

id がP569 の要素の直下の、
wikibase-statementgroupview-property クラスが付いた、div 要素

このCSS セレクターで要素を取得して、それが1つだけかどうか確認しないといけない。
このHTML の製作者は、このクラスを複数のタグに付けているかもしれない

このように、他人が作ったHTMLを、解析していくのが難しい。
その仕様は、その製作者が決めたもので、我々が知らないものだから、
隠された情報を暴くのに、時間を食うから、非常に無駄!

仕事以外で、他人の仕様を解析するのは辞めた方がよい。
製作者は答えを知っているけど、我々は答えを知らないから、時間ばかり食う!
0555デフォルトの名無しさん
垢版 |
2018/10/25(木) 10:14:40.95ID:yIJtoQcC
今は1階層深くなっているようだ
//*[@id="{code}"]/div[2]/div/div/div[2]/div[1]/div/div[2]/div[2]/div[1]{link_html}/text()
0556デフォルトの名無しさん
垢版 |
2018/10/25(木) 10:21:59.94ID:Rw/1mEHp
>>553
なるほど

まだ途中までしか読んでないけどおそらく本の内容はこんな感じ

1
ウィキペディアにある現在までのノーベル賞受賞者の全員の一覧からウィキデータにある各人のパーソナル情報とウィキペディアの各人の概略と人物写真をScrapyでスクレイピング

2
そのデータをPandasとMatplotlibでクリーニング、分析

3
そのデータをFlaskを使って配信

4
そのデータをJavascriptのD3.jsで可視化

4の可視化に興味があって読み始めた感じ。けどせっかくなので1から読んでScrapyも学んでみようかと。
でも、他人が作ったサイト(ウィキペディア)で悩むよりもAPIなどで簡単に取得出来るような別のデータを使って2に進んだ方がよいですか?
(幸い、本の著作のGithubは数年前にすでにスクレイピングしたデータが置いてありました。数年前なのでもちろん今年の本庶さんは含まれてないですけどね。)
0558デフォルトの名無しさん
垢版 |
2018/10/25(木) 10:43:07.24ID:Rw/1mEHp
https://i.imgur.com/I9jF1Rl.jpg
date of birthのところでコピーしたXPath
//*[@id="P569"]/div[1]/div/a

https://i.imgur.com/b4m9Pop.jpg
その日付けのところでコピーしたXPath
//*[@id="q155525$82312275-D23F-4048-A710-6EC6AB12C2C2"]/div[2]/div[1]/div/div[2]/div[2]/div[1]

2枚目の画像の部分を選ぶんだと思っていたんですけど、もしかして選ぶ場所間違えてますか?
0559545
垢版 |
2018/10/25(木) 11:01:29.24ID:ZE3NVml1
>>556
その本の例題が難しすぎる。
自分で他人のHTML を解析してまでやる必要はない。無視すべし

自分のやりたい部分だけを、やった方がよい
0560デフォルトの名無しさん
垢版 |
2018/10/25(木) 11:34:29.89ID:yIJtoQcC
>>558
目的地点はあってるが出発地点が違う
もうちょっとソースを読んで、どういう風にXPathをテンプレート化しているかを理解しよう
0561545
垢版 |
2018/10/25(木) 12:03:03.26ID:ZE3NVml1
date of birth の、XPath, CSS selectorは、
//*[@id="P569"]/div[1]
#P569 > div.wikibase-statementgroupview-property

id がP569 の要素の直下の、
wikibase-statementgroupview-property クラスが付いた、div 要素

place of birth の、XPath, CSS selectorは、
//*[@id="P19"]/div[1]
#P19 > div.wikibase-statementgroupview-property

id がP19 の要素の直下の、
wikibase-statementgroupview-property クラスが付いた、div 要素

ここで、id のP569, P19 みたいなものは、別のHTML から取れるのか?
だったら、CSS セレクターで取れる

XPath なら、div[1] とか番号指定よりも、class 指定の方がよい。
//*[@id='P569']/div[@class='wikibase-statementgroupview-property']
//*[@id='P19']/div[@class='wikibase-statementgroupview-property']
0562デフォルトの名無しさん
垢版 |
2018/10/25(木) 12:21:08.82ID:Rw/1mEHp
>>560
出発地点ですか!

例えば「8 October 1927」という文字の上で右クリックして検証を選んで出てくる開発者ツールのElements欄を見てるんですが、もしかしてそこから間違えているとかですか?

> もうちょっとソースを読んで、どういう風にXPathをテンプレート化しているかを理解しよう

どういう事なのかさっぱり分からないです…

>>560
>>561
そういう知識はどこで身につけるんでしょうか?
おそらくこれはPythonとは直接関係ない部分なのでPythonの本でもそんなに詳しくは書いてないのかと思います。
これらはWeb開発の知識でしょうか?
ほんのちょっとだけどPythonは覚えたから大丈夫だけど、Webは分からないから暗号にしか見えず恐ろしいです。

なるべくWeb開発をしなくてもいいように(ほんとはWebは専門の人に任せようって)、Web開発の部分はなるべく最小限で済むようにして、みなさんがPythonとJavascriptのプログラミングに専念してシングルページアプリを作れるようにってのがこの本らしいけれど、
XPathやChromeのこのツールやdivとかクラスっていうものの知識ってどういうところ(本?サービス?言語?)で学ぶといいんでしょうか?結局はやはりWebの知識が必要になってくるんでしょうか?
途中、SVGでグラフィックを作る章の最初にHTMLとcssの基本的な事が書かれてありましたけれど。
0563545
垢版 |
2018/10/25(木) 13:36:59.66ID:ZE3NVml1
先に、JavaScript, jQuery で、CSS セレクターを学ぶ。
CSS セレクターの方が読みやすい。
入門用サイトでも見て

HTML で、CSS デザイン用の属性、id, class などを付けるでしょ?
それを手掛かりにして、要素を取得する

XPath は後でよい。
入門用サイトを見る
0564デフォルトの名無しさん
垢版 |
2018/10/25(木) 14:08:58.54ID:JjKr6ouj
https://i.imgur.com/H3vQCNy.jpg
>危険なWeb開発地帯
自分もこの認識
恐ろしい

>>563
早く先に進みたいけれど、一旦Pythonは横に置いて、そういう学習してみます。
プログラミング言語としてのJavaScriptではなくWebで使うためのJavaScriptという位置付けで学ぶとcssなど理解できるようになるんですかね?

あと、JavaScriptのスキルを身に付けたいならフレームワーク(jQueryなど)の存在は完全に無視すべきとありました。
0565デフォルトの名無しさん
垢版 |
2018/10/25(木) 14:10:23.63ID:f1dgb8e7
Python少し触っただけの初心者です。
インデント位置が変わるだけでプログラムのロジックの意味が
変わるのを知ってビックリしているのですが、
そんな言語を使ってまともなプログラムを書けるのですか?
0567545
垢版 |
2018/10/25(木) 14:20:16.10ID:ZE3NVml1
難しすぎるから、あきらめた方がよい。
他人が作った、HTML を解析しても、時間の無駄で、得るものがない!

本か入門用サイトで勉強した方が、体系的に勉強できて、余程よい

それと投稿時には、名前欄に、538 と書いてくれ
0568538
垢版 |
2018/10/25(木) 14:29:40.72ID:JjKr6ouj
>>567
まさにこの本がPython学習者がデータの可視化に向けてJavaScriptを学ぶのにちょうどよい本だと思って手に取ったんですが…
0569デフォルトの名無しさん
垢版 |
2018/10/25(木) 15:37:48.62ID:5Cy/pQlU
最近裾野が広がって初学者が増えたのは良いが
FAQはどっかでまとまったの見ておくべき
0570デフォルトの名無しさん
垢版 |
2018/10/25(木) 15:45:19.08ID:K87hu2sk
>>565
同じ処理なら誰が書いても同じようなコードになる
0571デフォルトの名無しさん
垢版 |
2018/10/25(木) 16:04:24.36ID:g7JlCOxC
Python始めたての初学者です。
ファイルを読み込んで、バックアップをとってから、ファイルの一部を書き換えるというプログラムを書きました。
これをPython3.6.1環境のLinuxで実行すると、うまく動きましたが、2.7.5環境の別マシンでは、
TypeError: 'encoding' is an invalid keyword argument for this function
というエラーを吐き実行できませんでした。さらに、2.5.2環境の別マシンでは
AttributeError: 'str' object has no attribute 'format'
というエラーを吐き、実行できませんでした。
Python2と3では互換性がないということは存じ上げていますが、今回、3.6.1、2.7.5、2.5.2のすべての環境で動くものを作りたいです。
おそらくopenのencodingの部分と、datetimeの部分のformatの書き方がだめなんだと思いますが、
全バージョン対応の書き方をしようと思うとどういった形になるのでしょうか。
ちなみに、以下がコード全文です。
https://pastebin.com/F2UKiYtQ
0572デフォルトの名無しさん
垢版 |
2018/10/25(木) 16:27:15.45ID:5Cy/pQlU
無駄な抵抗はよせ
0573デフォルトの名無しさん
垢版 |
2018/10/25(木) 17:20:42.65ID:YZYAqGHb
>>562,564

Pythonは詳しく無いので恐縮ですが、

>プログラミング言語としてのJavaScriptではなくWebで使うためのJavaScriptという位置付けで学ぶとcssなど理解できるようになるんですかね?

CSS(スタイルシート)はWebページの見た目を制御するためのものです。

HTMLの要素ごとに、サイズ、背景、フォントの種類、レイアウトなどをCSSで指定する。
HTMLの要素は、タグ、属性、値で構成される。divはタグ、id, classは属性。

よって、CSSを覚えるには、HTML+CSSのセットで覚える必要がある。

今だったら、HTML5+CSS3

さらに、HTMLの要素を操作して表示を変化させるにはJavaScriptを使う。

ホスト側で処理が必要な場合は、CGI(GET,POST)などの知識も必要。

Webページ(HTML)の解析をするのであれば、HTML+CSSの知識は必須と思う。
0574デフォルトの名無しさん
垢版 |
2018/10/25(木) 18:16:58.93ID:g7JlCOxC
>>572
抵抗させてください
0576デフォルトの名無しさん
垢版 |
2018/10/25(木) 19:56:43.69ID:NF5xn3mp
>>575
なに偉そうに命令しとるんじゃ
しばくぞ
0578デフォルトの名無しさん
垢版 |
2018/10/25(木) 20:58:23.32ID:NT+vxu3F
無駄なあがきだと思うよ
import sys
if sys.version_info >= (3, 0):
def xopen(file, encoding):
return open(file, encoding=encoding)
else:
import codecs
def xopen(file, encoding):
return codecs.open(file, encoding=encoding)
0579デフォルトの名無しさん
垢版 |
2018/10/25(木) 23:07:28.40ID:ZUq2YpeN
確かに文字列関係は労力が見合わないな
0580デフォルトの名無しさん
垢版 |
2018/10/26(金) 01:52:17.86ID:etilwalQ
>>578
ありがとうございます
いい感じに動いてるっぽいです
ちなみになんですが、
def xopen(file, encoding):
return open(file, encoding=encoding)
xopenという新たに定義した関数のencodingっていうパラメータが、open関数に渡る際に、encoding=encodingとなった右側のみに代入されるのがいまいち何故か分かりません
0581532
垢版 |
2018/10/26(金) 10:52:40.48ID:99OxERMj
>>537
遅レスで会話の邪魔して悪いんですが。英語で質問するだけの勇気がありません・・・
pyGTKでgtk.gestureはそもそも文献自体がほとんど(2019/1に洋書が出るようですが)ないので、
とりあえず今はwebkit1を使って凌ごうともいます。
0582デフォルトの名無しさん
垢版 |
2018/10/26(金) 11:27:23.79ID:+/5bIPXr
いまスクレイピングの勉強してて、テキスト通りに入力したら
operation not permittedとエラーが出ました
python3.6
IPad Proでpythonista使ってます
写真がその内容です
https://imgur.com/a/DNU9qUA
0584デフォルトの名無しさん
垢版 |
2018/10/26(金) 12:46:11.07ID:xBIHPZW8
>>571
そういうマルチバージョン対応などは、10年以上の開発者がやるもの!
初心者がやるべき事ではない

初心者は、python3系だけを使ってください
0585デフォルトの名無しさん
垢版 |
2018/10/26(金) 13:22:34.36ID:mc9Lb34M
>>584
アホは出てくんな
0586デフォルトの名無しさん
垢版 |
2018/10/26(金) 13:32:28.45ID:kt4cO7LW
>>583
クリップボードの内容を取得したりOSと連携する様な操作は
iPadだと出来ることと出来ないことがあるよ
クリップボードの内容取得は出来るけど
iOS用に書き換えないと

import clipboard
text = clipboard.get()
print(text)

Pythonista のドキュメントに以下の項目があって
iOS 用に使えるモジュールが出てる
Pythonista Modules
Additional modules developed specifically for iOS
0587デフォルトの名無しさん
垢版 |
2018/10/26(金) 13:40:57.57ID:pU3zjhOE
pipでuinstallした時に
would remove:
proceed?(y/n)
と聞かれて、yを選ぶと
fikenotfounderrorが出てアンインストール出来ません
どうしたらよいですか?
0591デフォルトの名無しさん
垢版 |
2018/10/26(金) 15:07:19.64ID:1xxQ31UG
>>589-590
・ないといわれたファイルは実際に(ほんとうに)あるのか、ないのかをexplorerあたりから確認しる
・テンソルフローはうまくうごいていたのか、いないのか
・ログインユーザー名に日本語(2バイト文字)を使ってないか?
0594デフォルトの名無しさん
垢版 |
2018/10/26(金) 17:48:07.64ID:OsF5A133
>>586
ありがとうございます
やっぱり初心者にpythonistaは厳しいのかなー
iPadで出来ていろいろ便利なんですけどね……。
0597デフォルトの名無しさん
垢版 |
2018/10/27(土) 00:41:13.73ID:QkHwtfgJ
スレチ
0598デフォルトの名無しさん
垢版 |
2018/10/27(土) 17:49:12.10ID:ZlRq8doU
HTML, CSS, JavaScript, jQuery などの事は、web制作管理板で聞いてください
0599デフォルトの名無しさん
垢版 |
2018/10/27(土) 17:49:31.22ID:M4OQ4nwj
python3で
print("humi" , humi, "%") を実行すると ('temp', 23.0, 'c') ←23は実際のセンサーの値です。
print関数で””で囲んだのは文字扱いで、複数の文字のときは「,」で区切りますよね?
理想は humi 47.0 %  と表示させたいのですがどうすればよいでしょうか?
初歩の質問なのですが悩んでおります
0601デフォルトの名無しさん
垢版 |
2018/10/27(土) 18:16:13.96ID:M4OQ4nwj
>>600
すまんが 俺もいままではそれでできてた。
今回はそれを入力すると ('temp', 23.0, 'c') って出るんです
そもそもなんで「'」になってるのかすら分からない。
0602デフォルトの名無しさん
垢版 |
2018/10/27(土) 18:19:52.16ID:M4OQ4nwj
すまんごちゃごちゃになってますね。
print("humi" , humi, "%") →('humi', 23.0, '%') になります。
普通なら>>600で大丈夫なはずなんですけど。。
0603デフォルトの名無しさん
垢版 |
2018/10/27(土) 18:26:42.99ID:d3ZViLoJ
それはpython2の挙動だな
0604デフォルトの名無しさん
垢版 |
2018/10/27(土) 18:40:14.43ID:M4OQ4nwj
>>603
ん?そんな急に変わるもんなの?
実行もsudo pythonで実行してるけど sudo python3にできたりするのですか?
0607デフォルトの名無しさん
垢版 |
2018/10/27(土) 19:42:26.23ID:M4OQ4nwj
>>605
それは存じてます。
それより下にあるprint関数はpython3の書き方でしっかり表示できてるんですよね。。
なぜかこの行だけ変な表示になる
0608デフォルトの名無しさん
垢版 |
2018/10/27(土) 19:56:03.40ID:tpZx8Nmf
まだ2系使ってるのはどんな層?
0609デフォルトの名無しさん
垢版 |
2018/10/27(土) 20:38:05.02ID:p3Z91K38
Linux系じゃね?
ブートストラップ周りに2系がガッツリ食い込んでるって聞いたことある。
そのせいで2系がデフォルトで入ってるとか。
0611デフォルトの名無しさん
垢版 |
2018/10/27(土) 21:09:16.81ID:d3ZViLoJ
humi = 25
print("humi" , humi, "%")
print(humi)

出力:
('humi', 25, '%')
25
0612デフォルトの名無しさん
垢版 |
2018/10/27(土) 21:26:03.77ID:M4OQ4nwj
>>611
まさにこれ。
python2はないと思う。ずっとこれでやってきてるので。
部分的に2とかありえるのかな?
0613デフォルトの名無しさん
垢版 |
2018/10/27(土) 21:28:08.36ID:d3ZViLoJ
>>611はpython2で動かした結果
0614デフォルトの名無しさん
垢版 |
2018/10/27(土) 21:39:51.74ID:M4OQ4nwj
>>613
まじですか・・
当方ラズパイをつかってまして lxterminalで sudo python ファイル名 なら実行できるけど
python3 IDLEつかうとモジュールエラー出るから避けてたんだけど もしかしてpython3じゃないってことですかね?
0615デフォルトの名無しさん
垢版 |
2018/10/27(土) 21:41:02.12ID:GbJLfo15
ちゃんと調べたら2系で動いてましたテヘペロ
に1票
これまでずっとそうしてきたからとか本当に信用ならん
0617デフォルトの名無しさん
垢版 |
2018/10/27(土) 21:53:58.98ID:WN5vicFY
RHEL系もDebian系もシステム周りはここしばらくはpython -> python2で、3はpython3で呼ぶようになってる
0618デフォルトの名無しさん
垢版 |
2018/10/27(土) 21:57:57.20ID:M4OQ4nwj
>>615
確認しました。ほんとにそれでしたすいません。
pip3でインストールしなきゃいけなかったそうです
どうもありがとうございました
0620デフォルトの名無しさん
垢版 |
2018/10/28(日) 07:05:43.19ID:7IwsJv31
自分ではどうしようもなくて他人に泣きついたのにどうしてその相手の言うことを聞かずにグダグダやってたんだ?
0621デフォルトの名無しさん
垢版 |
2018/10/28(日) 07:43:54.72ID:lVhl2H66
Pythonで作成したモジュールをUWSCで呼び出すことはできますか?
UWSCではDLLを読み込んで関数が使えるのですが
そういう行為をプログラミング用語でなんというのでしょうか
検索ワードがよくないのか手がかりすら掴めてないです
よろしくお願いします
0622デフォルトの名無しさん
垢版 |
2018/10/28(日) 07:57:38.17ID:JDWqlC9k
>>621
uwscなんて初めて知ったけど、exec()というコマンドがあるそうだから、単純に
exec("pythonのパス" + "pythonスクリプトのパス")でいいんじゃないの?
0624デフォルトの名無しさん
垢版 |
2018/10/28(日) 12:12:29.72ID:YiTUMI+K
>>623
それで十分だろ。
思い込みは捨てて
exec("<python.exeのフルパス> <スクリプトのフルパス>")
を実行してみなよ。
discmdのほうも単にパスが通ってないだけだと思うよ。
フルパスで入力してる?
0626デフォルトの名無しさん
垢版 |
2018/10/28(日) 13:08:03.94ID:auhqQrbO
Fswebcamで撮影した写真をメールで自動送信を考えています。
探知して送るのはあるんですけど、撮影した写真をまとめて送るようなプログラムってつくりにくいですか?
シェルだと楽っぽいけど 慣れてないので分からない。。
0627デフォルトの名無しさん
垢版 |
2018/10/28(日) 13:30:49.38ID:auhqQrbO
もしくは撮影されたフォルダ内から日時の新しいものとか新しいうちの四つを添付するとかできないかなと?
普通に添付するならファイルが指定になるから難しそうですかね。。
0629デフォルトの名無しさん
垢版 |
2018/10/28(日) 23:28:27.44ID:fiBcuTbE
numpyで配列の要素が範囲となるような配列をつくることはできますか?
例えばAというはいれつがあって、
A[0] = np.arange(0,1,0.01)
みたいなものです
0630デフォルトの名無しさん
垢版 |
2018/10/29(月) 00:31:07.47ID:tXMYusEl
意図があってるか分からないが
A = np.stack([np.arange(0,1,0.01)]*10)
A += np.arange(10).reshape((10,1))
0634デフォルトの名無しさん
垢版 |
2018/10/29(月) 11:12:02.14ID:wR2M4wFA
requestsでファイルをダウンロードする時タイムスタンプは変更しないでダウンロードする方法教えて下さい!!
0635デフォルトの名無しさん
垢版 |
2018/10/29(月) 11:28:06.05ID:VxCr7qKV
os.utime
0636デフォルトの名無しさん
垢版 |
2018/10/29(月) 11:56:15.99ID:wR2M4wFA
requestsで何らかの方法を使ってファイルの作成日などを取得してダウンロード後にos.utimeでその日付に書き換えるんでしょうか?
0639デフォルトの名無しさん
垢版 |
2018/10/29(月) 12:51:46.14ID:VtmwN/uo
wget -N url も utime やろ
0640493
垢版 |
2018/10/29(月) 17:45:54.93ID:k7vAtK/H
ちょっと前にwebkitgtk epubミューアの件で質問した者ですが、コードを見ていて疑問に思っていたことがあるので
質問させてください。
main_window.py

self.viewer = viewer.Viewer(self)
print("Displaying blank page.")
self.viewer.load_uri("about:blank") # Display a blank page
self.viewer.connect("load-finished", self.__ajust_scroll_position)
self.viewer.connect("load-finished", self.__save_new_position)
self.right_box.pack_end(self.right_scrollable_window, True, True, 0)
# Create Chapters List component and pack it on the left
self.chapters_list_component = chapters_list.ChaptersListComponent(self)

(途中省略)

def __save_new_position(self, wiget, data):
"""
Saves new position in case new load came from link based navigation
:param wiget:
:param data:
"""
if not data.get_uri() == "about:blank":
self.content_provider.set_data_from_uri(data.get_uri())

load-finishedの時に呼ばれているコールバック関数なんですが、wigetとdataって何なんですか?
なんでdata.get_uri()と書けるんでしょうか?
それと、このコールバック関数配置ページ読み込むごとに呼ばれているという認識で正しいのでしょうか?

あと、 content_provider.py
if urllib.parse.unquote((os.path.split(uri)[-1]).split("#")[0]) == os.path.split(self.chapter_links[i])[-1]:
ってどうして必要なんでしょうか?(これがないと機能しないようですが)
0643デフォルトの名無しさん
垢版 |
2018/10/29(月) 18:12:16.70ID:ItEstrK2
>>642
写真だと見づらいね
find_allの時はリストで取得してるから
for c in content: で回して取り出してみて
0644デフォルトの名無しさん
垢版 |
2018/10/29(月) 18:35:48.17ID:RJcKPmzk
c.attrs['content']
0645デフォルトの名無しさん
垢版 |
2018/10/29(月) 18:38:50.81ID:5LhWTx/7
pandasのtocsv使うときデータ内に¥nが入っててcsv出力時点で改行され、excelからcsvをデータインポートカンマ区切りで読み込みたい時に改行されて悲しいことになるんですがどうするのがスマートですか
¥n入るのは正しく、16桁以上の数字のカラムがあるのでデータインポートで読み込みたいです
0646デフォルトの名無しさん
垢版 |
2018/10/29(月) 18:49:52.26ID:dTGmjkHB
本当だ
よく見るとこの場合は実行するとリストとして取得されてるんですね
そりゃstringじゃ無理な訳ですね
わかりやすい
0649デフォルトの名無しさん
垢版 |
2018/10/29(月) 19:21:40.44ID:TEtmhpeX
>>645
to_csvのオプションで個々の値にクォーテーションを付ける
import csv
df.to_csv(“hoge.csv”, quoting=csv.QUOTE_ALL)
0650デフォルトの名無しさん
垢版 |
2018/10/29(月) 21:46:01.91ID:b4sCrQ/m
>>640
そんな零細プログラムの詳細をここで質問しても誰も答えないと思うぞ…

気が向いたから答えるけど次はないからな。

__save_new_position()メソッドを呼びだしているのはwebviewクラス。
下記ページによると、第二引数はwebview自身、第三引数はwebframeクラスのインスタンスを渡して呼び出されることが分かる。
webframeのリファレンスページを見ればwebframeクラスがget_uri()メソッドを持っていることも分かる。
https://lazka.github.io/pgi-docs/WebKit-3.0/classes/WebView.html#WebKit.WebView.signals.load_finished

content_providerのほうは、指定されたxmlファイルが、chapter_links配列の何番目のファイル名と一致しているかを調べることで、チャプター番号を特定している。
uriがエスケープされていたり"#"フラグメントがついてると比較できないから取り除いている。
0651デフォルトの名無しさん
垢版 |
2018/10/29(月) 21:54:17.26ID:g2+WGN4L
>>647
一般的にHTTPレスポンスヘッダのLast-Modifiedにファイルのmtimeが入ってるからそれを取得して、ファイル書き出してからmtime更新すれば良い

curl使えるなら-vで一度レスポンスヘッダ見るといい
0652デフォルトの名無しさん
垢版 |
2018/10/29(月) 21:58:45.40ID:Uyob8jIm
凄いねよく答えられるな、流石

gtkは全く知らないけど
wigetはwidgetのスペルミスだろうね、きっと
0653デフォルトの名無しさん
垢版 |
2018/10/30(火) 06:58:19.30ID:wwkQj2Ri
>>651
これであってますか?

resp = requests.get(url)

# レスポンスヘッダの Last-Modified を取得
last_modified = resp.headers['Last-Modified']
print(ast_modified)
Thu, 13 Oct 2016 05:36:56 GMT

# datetime オブジェクトに変換 (表記のロケール依存を防ぐために dateutil.parser を使う)
last_modified = dateutil.parser.parse(last_modified)
print(ast_modified)
2016-10-13 05:36:56+00:00

# unix time に変えるために calendar を使う
unixtime = calendar.timegm(lastModified.utctimetuple())
print(unixtime)
1476337016

# ファイルの書き込み
img_file = open(file_path, 'wb')
img_file.write(resp.content)
img_file.close()
os.utime(file_path, (unixtime, unixtime)) # ファイルパス, (アクセス時間, 修正時間)


ファイルの作成日の取得と書き込みはどうやるんでしょうか?
0655640
垢版 |
2018/10/30(火) 08:47:23.62ID:/tw9qCHj
>>650
レスありがとうございます。助かりました。
0656デフォルトの名無しさん
垢版 |
2018/10/30(火) 09:35:33.18ID:/tw9qCHj
次はないと言割れましたがちょっと不思議なことがあったので質問させていただきます。
sorted関数を使うと、
パブリックドメインのepubで有名なgutenbergのファイル名をソートしていたのですが、
(@public@vhost@g@gutenberg@html@files@31278@31278-h@31278-h-0.htm.htm、@public@vhost@g@gutenberg@html@files@31278@31278-h@31278-h-10.htm.htmllなどというファイル名です)
0. 1.10, 11,12, .2などとソートされるようですが、普通に0,1,2,3,4の順番にできないのでしょうか。
というよりなぜグーテンベルクのファイルだけ、おかしなソートになるのかわかりません。
0657デフォルトの名無しさん
垢版 |
2018/10/30(火) 09:48:16.33ID:JqsKq037
数値型は数の大小で比較されるが、
文字列型の数値は文字列として比較されるから数の大小順には並ばない
数値として比較したければ、sort(またはsorted)のkey引数に適切なキー抽出関数を与える必要がある

その本だけがと言っているが、条件を満たしていればどんなリストでもお前の言う「おかしなソート」になる
print(sorted('11', '2', '.1'))
0658656
垢版 |
2018/10/30(火) 10:00:46.78ID:/tw9qCHj
>>657
ググったらでてきました。文字列型だと10が2より先に来るようですね。
どうもありがとうございました。
0659デフォルトの名無しさん
垢版 |
2018/10/30(火) 12:37:59.64ID:BBRqRtLN
>>653
そんな感じ
ファイルの作成日時は取得する手段がないので諦めて
(独自ヘッダで応答してくれるサーバーを除く)
0660デフォルトの名無しさん
垢版 |
2018/10/30(火) 12:44:20.01ID:QArnhM9r
>>649
試してみたけど無理でした
ダブルクリックで開くと問題ないけどtxtのインポートだと開いた時点で改行されるからどうしようも無いのかなこれ
0661デフォルトの名無しさん
垢版 |
2018/10/30(火) 14:52:54.90ID:mxVOiKCI
bashからpythonプログラムを実行するときに、pycharmで簡単にデバッグしたいんですが、どうすればいいですか?
pythonコードだけの場合のやり方は分かるんですけど
print()いっぱい書くしか無いんですかね
0662デフォルトの名無しさん
垢版 |
2018/10/30(火) 14:55:07.36ID:mxVOiKCI
>>658
float型に変換しないとちゃんとソートできないよ
0665653
垢版 |
2018/10/30(火) 15:46:23.76ID:74FRV+Zp
>>659
どうもありがとうございます
基本的に作成日の取得は出来ないんですね
0666653
垢版 |
2018/10/30(火) 16:13:18.69ID:74FRV+Zp
try:
f = open(local_path, 'rb')
dbx.files_upload(f.read(), upload_path)
f.close()
except dropbox.exceptions.ApiError:
print(dropbox.exceptions.ApiError.error)

Dropboxにアップロードする時、エラーが出た時はプリントするように例外を出したいんですが、
これだと、
AttributeError: type object 'ApiError' has no attribute 'error'
ってエラーが出てしまいます。


try:
f = open(local_path, 'rb')
dbx.files_upload(f.read(), upload_path)
f.close()
except dropbox.exceptions.ApiError as err:
print(err.error)

これだと、エラーがちゃんとプリントされます
なぜ、 as err を付けるとちゃんと動くんでしょうか? 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
0667デフォルトの名無しさん
垢版 |
2018/10/30(火) 16:47:54.22ID:mxVOiKCI
pycharmでrun/debug configurationのset wowrking directoryに、プログラムを実行したいディレクトリ(pロジェクトのルート外)を入れても、ファイルが見つからないとエラーがでます
ターミナルでは実行可能です
プロジェクトのルート外のディレクトリで実行するにはどうすればいいいか教えて頂きたいです
0668デフォルトの名無しさん
垢版 |
2018/10/30(火) 17:27:16.66ID:o9t78hsF
>>667
ちょっと何言ってんだかわかんない。
working directoryは実行するpyhonスクリプトのディレクトリが勝手に入ると思うのだが。
見つからないと言われるファイルは何?
実行するスクリプトから参照しているファイルじゃないの?
図示してくれ。
0669デフォルトの名無しさん
垢版 |
2018/10/30(火) 18:23:15.32ID:LRpQBEf3
>>666
前者はクラス名.変数名(ApiError.error)になっているのでクラス変数を参照しようとしている。
故にApiErrorにerrorという名前のクラス変数がなければエラーになる。

後者はインスタンス名.変数名(err.error)になっているのでインスタンス変数を参照しようとしている。
errorはインスタンス変数なのでエラーにならない。
0670653
垢版 |
2018/10/30(火) 18:43:42.81ID:wwkQj2Ri
>>669
どうもありがとうございます
dropbox.exceptions.ApiError as err
これって、
dropbox.exceptions.ApiError
をerrって別名にしただけですよね?

ってことは
err.errorと
dropbox.exceptions.ApiError.error
は結局同じ気がするんですが、違うんでしょうか?
違いがわからないです
0671デフォルトの名無しさん
垢版 |
2018/10/30(火) 19:22:58.06ID:LRpQBEf3
>>670
違うよ。
ApiErrorはクラス名、errはインスタンス名。
a = MyClass()
って書いたときにMyClassとaは違うものでしょ?それと同じ
0672デフォルトの名無しさん
垢版 |
2018/10/30(火) 19:39:22.54ID:vHVA3ezu
except E as N:
と書いてある場合は
"Eが例外オブジェクトのクラスだったら例外をNに代入"
という処理になる
他のasを使った文のようにEの別名をNにする訳ではない
0674デフォルトの名無しさん
垢版 |
2018/10/31(水) 00:55:47.26ID:KgeV0wH8
ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.

sklearnでLinearSVCのグリッドサーチするとこの文章が永遠に出てくるんですけどどういうことですか?調べてもわかりませんでした。
0675デフォルトの名無しさん
垢版 |
2018/10/31(水) 01:29:09.72ID:C97UeufF
そのままの意味で、毎回の学習が収束まで行ってないからイテレーション回数増やせって事では
0677デフォルトの名無しさん
垢版 |
2018/10/31(水) 10:16:21.72ID:C97UeufF
>>676
学習率が大きすぎるとか
0678デフォルトの名無しさん
垢版 |
2018/10/31(水) 12:17:11.83ID:/o0RsUYT
1からpythonの勉強始めて、オブジェクト指向とやらで挫折中。
クラスやら継承は何となく理解できて、
どう書けばいいのかも何となくわかるけど、
理解するのに時間がかかりそう。色々なコードを書いて覚えていくしかないのか?
経験者ってここら辺どうなんですか(しっかり理解できているかどうか)
0679デフォルトの名無しさん
垢版 |
2018/10/31(水) 13:08:59.03ID:gqgWGRur
関数とかと同じで、クラスも便利だなあと思える具体例や機会があれば使えるようになる
何処か見たアドレス帳を作る例は分かり易そうだったけど、あれは何処だったか
でもクラス使わなくてもプログラムは出来るから直ぐに使えるようにならなくても問題ない
0680デフォルトの名無しさん
垢版 |
2018/10/31(水) 13:20:42.47ID:gqtAU0ur
>>678
スクリプターってクラスを使うばっかりで作る方はあんまりって傾向があるから、無問題ではある。
Cも覚えてライブラリ作りも頑張ってほしいかな。
日本のプログラマーの質が問われるから。
0681デフォルトの名無しさん
垢版 |
2018/10/31(水) 13:31:11.31ID:zGg5PO0t
日本のプログラマーの質が問われるから。

だってw
0682デフォルトの名無しさん
垢版 |
2018/10/31(水) 13:32:03.51ID:gc+olMws
"html54200-0.html#anchor001"

と言う文字列の#の前の数字だけ抽出(542000)したいのですが、どのような正規表現を書けばよいのでしょうか?
([0-9]+)(?=#)
ではだめでした。よろしくお願いします。
0683682
垢版 |
2018/10/31(水) 13:35:03.91ID:gc+olMws
書き忘れましたが、現状ではre.findall[54200、 0]と言うリストを取得したあと、
join()で542000にすることを考えていたのですが、アンカーから後を取得すると狂ってしまうので、
アンカーから後は抽出したくないのです。よろしくお願いします。
0687デフォルトの名無しさん
垢版 |
2018/10/31(水) 13:43:30.37ID:BEBaW28W
>>668
見つからないと言われるファイルはrun/debug configurationのparametersで指定したものです
>>working directoryは実行するpyhonスクリプトのディレクトリが勝手に入る
それをスクリプトを実行したい場所に変更してるんですけど
0689デフォルトの名無しさん
垢版 |
2018/10/31(水) 13:51:38.68ID:XAA9QXm2
>>680-681
2ちゃんや5ちゃんの履歴消すしかないな
0690デフォルトの名無しさん
垢版 |
2018/10/31(水) 13:53:01.77ID:gc+olMws
レスありがとうございます。
>>684
これ以外にも似たようなファイルがあるので、できるだけ一般化しておきたいのです正規表現を考えました。
>>685
お教えいただいたところ申し訳ないのですが、Noneとでてしまいました。私の設定のどこかがまずかったのかしれませんが。
0692デフォルトの名無しさん
垢版 |
2018/10/31(水) 14:00:41.64ID:gc+olMws
検索する文字列にsplit("#")[0]をつけることを思いつきました。
あんまりスマートじゃないかもしれませんがこれで行こうと思います。
皆さんありがとうございました。
0693デフォルトの名無しさん
垢版 |
2018/10/31(水) 14:03:31.31ID:1NzreX+B
>>687
図示してくれるか、何をどうしているのかという全体の構成がわからないと、
何でつまづいているのかがわからない。
parametersにはsys.argvで受け取りたい内容を入れることはわかってるんだよね?
0694デフォルトの名無しさん
垢版 |
2018/10/31(水) 14:20:03.17ID:BEBaW28W
>>693
他人の書いたコードがどう動いてるのか理解するためにデバッグしたいと思っていて、全体の構成はよくわかってないんですけど、それだとデバッグはできないってことなんでしかね?
あるファイルが出力される時点で動いてるコードを見たいと思ってるんですけど
0695デフォルトの名無しさん
垢版 |
2018/10/31(水) 14:46:51.62ID:1NzreX+B
>>694
イマイチわからんけど、
bashでpythonのscriptに何らかの引数を渡して実行したいって事じゃないの?

そうだとすればbashからの引数がscript parmetersの値で、
pycharmでそのスクリプトを開いてデバッグするだけの事だと思うんだけど違うの?
0696デフォルトの名無しさん
垢版 |
2018/10/31(水) 14:54:31.80ID:BEBaW28W
>>695
parameterで渡したはずのファイルがnot found になって困っているんです
で、そのファイルはcontent root 外なので問題なのかなとか思ってるんですけど
0697デフォルトの名無しさん
垢版 |
2018/10/31(水) 15:00:36.67ID:1NzreX+B
python側のデバッグ(動作確認)したいだけなら、
引数にこだわらずにダイレクトにファイル指定してやればいいだけだと思うけど?
0698デフォルトの名無しさん
垢版 |
2018/10/31(水) 15:27:06.72ID:BEBaW28W
いちいち書き換えないといけないんですかね?
せっかくコマンドライン引数で指定できるようになってるのに
0699デフォルトの名無しさん
垢版 |
2018/10/31(水) 15:29:28.35ID:BEBaW28W
>>692
そういう文字列処理はawkとかperlのほうが簡単だよ
0700デフォルトの名無しさん
垢版 |
2018/10/31(水) 17:36:50.33ID:DIssBnZo
def gethtml(url, prm=""):
 r = requests.get(url, params=prm)
 r.encoding = 'CP932'
 return r.text

こんな関数でエンコードがCP932(のはずの)サイトを取得して
日本語は普通に表示されてるんですけど
@とかqとかが文字化けしてしまいます。どうすれば文字化けを回避できますか?
0701デフォルトの名無しさん
垢版 |
2018/10/31(水) 18:12:41.93ID:taLNwoKn
NEC特殊文字が化けてるのか
いま確認環境がないからどうにかできるかはわからん
0702デフォルトの名無しさん
垢版 |
2018/10/31(水) 18:28:43.45ID:XAA9QXm2
>>> print('@とかqとか')
@とかqとか


ちゃんと表示される
0703デフォルトの名無しさん
垢版 |
2018/10/31(水) 18:37:40.87ID:DIssBnZo
とりあえず自己解決
対象ページをファイルとして保存した後、codecsで保存したファイルをロードすることで対処できました
0704デフォルトの名無しさん
垢版 |
2018/10/31(水) 20:12:08.83ID:gHBnMNYM
epubビューアの開発は順調に進んでるのかな
0705デフォルトの名無しさん
垢版 |
2018/10/31(水) 20:40:39.13ID:/o0RsUYT
>>680 >>679
2年間運用(継続中)してます。
所属部署がクラウドに力入れ始めててpython勉強
しとけと言われてやってます。取りあえずスクレイピング
できるようになりたいのでコード漁ってるんですが関数さえ
使用してないように見えてて、おっしゃる通りなんですかね
最終的に何か作れるようになりたいけど、何も思いつかないし
何を目指したらいいのやら
0706デフォルトの名無しさん
垢版 |
2018/11/01(木) 00:22:16.46ID:PBz6MbCm
>>682-692
Ruby なら、File.basename の第2引数に、.* を渡せば、. より前の部分を取れる

file_name = File.basename( "html54200-0.html#anchor001", ".*" )
#=> "html54200-0"

>>705
Ruby で、Selenium WebDriver, Nokogiri を使って、
ブラウザで自動ログインしたり、Showroom のアバターを削除したりしてる

他にも、5ch の書き込み内から、画像のURL だけを拾って表示したり、
主に、ブラウザを使った、webサイトの自動テストに使う

その際のPage Object は、典型的なオブジェクト指向による、テスト方法
0707デフォルトの名無しさん
垢版 |
2018/11/01(木) 04:05:25.76ID:rG6revia
>>705
まずはDomを理解汁
0708デフォルトの名無しさん
垢版 |
2018/11/01(木) 10:34:25.18ID:z733lC2q
>>705-707
スレチ
0709デフォルトの名無しさん
垢版 |
2018/11/01(木) 10:58:02.80ID:LBGTfI8S
>>698
言ってる事が矛盾してるんだけど。
>他人の書いたコードがどう動いてるのか理解するためにデバッグ
>いちいち書き換えないといけないんですかね?

理解すれためなら、一回入力するだけでいちいち書き換える必要はないだろ。
0710デフォルトの名無しさん
垢版 |
2018/11/02(金) 23:07:04.01ID:WjnTpSxg
MySQL connectorの使い方を教えてください。

MySQLのTIME型をSELECTしてfetchoneすると、datetime.timedelta型になってしまいます。
datetime.time型で取得するにはどうすれば良いのでしょうか?
0712デフォルトの名無しさん
垢版 |
2018/11/03(土) 10:46:05.35ID:j00DZJyr
rawで引っ張って自分でconvertする。
列の仕様がはっきりしているなら、たぶんこれが一番速い。
0714デフォルトの名無しさん
垢版 |
2018/11/03(土) 22:14:11.53ID:+dBdxEJM
pyファイルに引数としてファイル渡して実行しながらデバッグしたいんですけどideでできますか?
0716デフォルトの名無しさん
垢版 |
2018/11/04(日) 13:42:02.03ID:5RY1Lh2I
>>711
これあかんやつやω
環境変わったら動かなくなるぞ
0717デフォルトの名無しさん
垢版 |
2018/11/04(日) 23:14:32.54ID:mnXqRc1x
Excelの全シートの特定セルから値を抽出したいんですが、

import openpyxl
book = openpyxl.load_workbook('xxx.xlsx')
all_sheet = book.sheetnames
for 抽出 in all_sheet:
print(抽出.cell(row=1, column=1).value)

ってやってもうまくいきません。
ご指導をお願いします。
0718デフォルトの名無しさん
垢版 |
2018/11/04(日) 23:33:00.89ID:H3HfNEok
Gmail inboxでメール作成する時、文字の色を替えたり背景色を付けたりは、
Pythonにやらせるのはやはり難しいのでしょうか
例えば文章を[b]と[/)で挟んでも、何事も無く……
ご指導を…m(_ _)m
0719デフォルトの名無しさん
垢版 |
2018/11/04(日) 23:45:43.19ID:f0WItr4A
関数の引数の一つをオプションにしたいのですが
デフォルトの値を関数内で決めたいです。例えばイメージとしては

def Function(data, average):

としてaverageのデフォルトの値を引数dataの平均値にしたいです。
average = np.(data)
のようにしてもエラーが出てきます。どのようにすればよいでしょうか?
0720デフォルトの名無しさん
垢版 |
2018/11/05(月) 00:12:47.04ID:WItML0Cb
>>717
all_sheet = book.sheetnames

all_sheet = book.worksheets

>>719
やりたいことはよう分らんが
np.(data)

np(data) #.(コンマ)を抜く
とすればエラーが出なくなるんでは
0721デフォルトの名無しさん
垢版 |
2018/11/05(月) 00:22:33.69ID:Forp8UuV
>>719
まずエラーメッセージを読む、そしてレスに添え省かない
もしデフォルト引数に書いたなら定義時に評価されるので
None等にしておき呼び出された時に判定して代入するなり
0722デフォルトの名無しさん
垢版 |
2018/11/05(月) 00:28:55.36ID:8OhTTD0N
>>719
平均を取るのは np.mean() だと思う。(import numpy as npしてればの話だけど)
関数の引数を他の引数のデフォルト値に設定したりはできないので

def Fucntion(data, average=None):
 if average is None:
   avarage = np.mean(data)

と書くのが普通じゃないかな
0724デフォルトの名無しさん
垢版 |
2018/11/05(月) 10:25:00.99ID:h9xlJLA6
Slackでは<{url}|{title}>の形式で書けば、リンクとして表示してくれるので、

slackToken = 'example'
url = 'http://example.com'
text1 ='あああああ'
text2 = 'タイトルです'
attText = f'aiueo <{url}|{text2}> kakikukeko'

slackData = {
"username": username,
"channel": channel,
"text": text1,
"attachments": [
{
"color": "#39a6e8",
"text": attText,
"thumb_url": thumbUrl
}
]}

requests.post(slackToken, data=json.dumps(slackData))

こんな感じで、requestsを使ってSlackにおくりたいんですが、
title2の1文字目が「<」で最後の文字が「>」だった場合、
Slack上では何故か aiueo <<http://example.com<;タイトルです>>>って表示になって、バグってしまいます。
今はとりあえず、text2の最初と最後が<>だったらその文字を削除してるんですが、text2に<>を含んだままSlackに送るにはどうやるんでしょうか?
0725デフォルトの名無しさん
垢版 |
2018/11/05(月) 13:32:25.59ID:o5QGnfIr
&lt;
&gt;
0727デフォルトの名無しさん
垢版 |
2018/11/05(月) 16:48:18.27ID:0An2vgEj
list.__getitemって何を返すんですか?
調べてもわからなかったんで教えてください
0728デフォルトの名無しさん
垢版 |
2018/11/05(月) 17:18:39.84ID:o5QGnfIr
a=[1,2,3]
a.__getitem__(1) # 2
0730デフォルトの名無しさん
垢版 |
2018/11/05(月) 18:10:05.24ID:0An2vgEj
>>728
>>729
heapq.nlargest(n, iterable, key=None)のkeyにlist.__getitem__の結果を入れることに、なんの意味があるんでしょうか。
0732デフォルトの名無しさん
垢版 |
2018/11/05(月) 18:33:34.89ID:ll2Vxm5g
あっれ?この野郎!
本とコードが違うじゃないか
独学プログラマーめ・・・
本だと変数のshowがnewに書き換えられてる
0735デフォルトの名無しさん
垢版 |
2018/11/06(火) 11:06:31.30ID:cQb5p7fE
python+gtkでepubビューアを改造している者ですが、
htmlファイルのアンカーのスクロール座標をjavascriptを使わずにpythonだけ取得することはできるんでしょうか?
具体的な用途としては、ブックマークの時のチャプター名や、
Linuxのevince(document viewer)の様に、画面をスクロールして次のチャプターの領域に入ると自動で、
左のチャプターリストビューの選択もそのチャプターのところに移動してほしいのですが、(クリック扱いになると
チャプターの最初に戻されてしまうので、青い選択が移るだけにしたいのです。)
言葉でうまく説明できなくてすみません
0736デフォルトの名無しさん
垢版 |
2018/11/06(火) 11:20:08.33ID:VRf3OGgv
>>734
ありがとう!
「独学プログラマー」って本です

これが終わったらdeeplearningの本読んでAI作るんだ・・・道は遠そう
0737デフォルトの名無しさん
垢版 |
2018/11/06(火) 17:51:56.07ID:Zf4d0x7S
htmlで
<td class=" "><a href=" ">TEXT</a></td>
のうちの<a href>内の" "の中身だけを取り出すにはどうすればいいですか?
0738デフォルトの名無しさん
垢版 |
2018/11/06(火) 19:12:51.68ID:B9fQWZZ6
>>737
何のモジュール使ってhtmlよんでんだよ


セレニウムなら「href属性 取得 selenium python」でググれ
0739724
垢版 |
2018/11/06(火) 20:09:21.47ID:QHiQfJwC
724ですけど、変数内に~~や**があるとそれらもSlack側で以下のように反応してしまいました。

~あいうえお~
と波線で囲めば打ち消し線に、
*あいうえお*
だと、太字です。

記号は記号としてポストするにはどうしたらいいんでしょうか?
0742724
垢版 |
2018/11/06(火) 20:28:42.52ID:QHiQfJwC
>>741
どうもありがとうございます!
試してみます!
今のところ分かったのはこの3つなんですが、記号類をまとめてちゃんと表示する仕組みってありますか?
今ちょっとググってたら
xml.sax.saxutilsのescapeだと<>はエスケープしてくれそうな感じでした。
0743デフォルトの名無しさん
垢版 |
2018/11/06(火) 20:31:38.28ID:0p0MEBcD
"mrkdwn": false
0744724
垢版 |
2018/11/06(火) 20:32:44.30ID:QHiQfJwC
あと、混乱してしまってるんですが、変数textの中にもし<、>、*、~のいずれかが含まれてたら、<、>、&#126;、&#42;に置き換えるには、if文でどう書くんでしょうか?
0745724
垢版 |
2018/11/06(火) 20:36:27.93ID:QHiQfJwC
何度もすみません
import xml.sax.saxutils from escape

import htmlのhtml.escape
はどう使い分けるんでしょうか?
0746デフォルトの名無しさん
垢版 |
2018/11/06(火) 20:51:13.02ID:B9fQWZZ6
>>744
findを使ってtextを検索し、-1よりでかい数が帰ってくるかどうかためす。
if text.find(’<’) > -1 or text.find(’>’) > -1 or....(略)
0747デフォルトの名無しさん
垢版 |
2018/11/06(火) 20:56:52.27ID:B9fQWZZ6
(つづき)
でもってif文のインデントの中に
text=text.replace('before','after').replace('before','after').replace('before','after').replace('before','after')

beforeにはそれぞれ<、>、*、~を入れて
aterには&#42;とかそういうのを書いておく
0748724
垢版 |
2018/11/06(火) 20:58:43.90ID:QHiQfJwC
>>746
なるほど!ありがとうございます!

> if text.find(’<’) > -1 or text.find(’>’) > -1 or....(略)
を途中で改行したい場合はどうやるんでしょうか?
バックスラッシュ付けるっぽいんですが、以下だとエラーになります

if text.find(’<’) > -1 or text.find(’>’) > -1 \
or....(略)
0749724
垢版 |
2018/11/06(火) 20:59:35.67ID:QHiQfJwC
>>747
ありがとうございます!!
0750デフォルトの名無しさん
垢版 |
2018/11/06(火) 21:00:46.35ID:B9fQWZZ6
>>745
前者は基本的に & 、 < 、および > が対象 だが 他の文字もエスケープ汁と命令することが可能

後者は & 、 < 、および > が対象
0752724
垢版 |
2018/11/06(火) 21:12:17.61ID:QHiQfJwC
>>750
どうもありがとうございます。
例えば、今回みたいに*や~も含めたいって場合なら前者で指定したらよいって事ですね。
0753デフォルトの名無しさん
垢版 |
2018/11/06(火) 21:13:16.40ID:B9fQWZZ6
>>748
途中で\入れるのって
pyrhon上で直接コマンド打ってるときだけじゃね?

pyファイルに書いたのを実行させるときはイラネ
0755724
垢版 |
2018/11/06(火) 21:15:09.62ID:QHiQfJwC
>>751
どうもありがとうございます!
他にもいくつかあったんですね。
それらの記号を >>746-747>>745の前者の方で試してみます
0756724
垢版 |
2018/11/06(火) 21:21:01.58ID:QHiQfJwC
>>753
if text.find(’<’) > -1 or text.find(’>’) > -1
or....(略)

だと、エラーになってしまいました。
0757デフォルトの名無しさん
垢版 |
2018/11/06(火) 21:21:04.81ID:B9fQWZZ6
>>753
>pyファイルに書いたのを実行させるときはイラネ
oh
オレ無意識に条件文のif以降を()でくくって最後に:付ける癖があるわ

 ↓
if (text.find(’<’) > -1 or
 text.find(’>’) > -1 or
 ....(略) ...):
        ↑

みたいに()でかこってやれば何行にわけてもおk
0758724
垢版 |
2018/11/06(火) 21:28:34.65ID:QHiQfJwC
>>757
へぇ〜
こんな方法もあるんですか!今試したら動いたけれど、
flask8だとW503 line break before binary operator
って言うエラーが出てました
0759デフォルトの名無しさん
垢版 |
2018/11/06(火) 21:33:57.41ID:B9fQWZZ6
>>758
アッハイ

or は 行の最後に書かずに
先頭にかけやこのデコスケ野郎

っていうエラーすね。

つまり推奨は
if (text.find(’<’) > -1
or text.find(’>’) > -1
or ....(略) ...):

汚いソースコードの書き方しててすみまそん。。。
0761724
垢版 |
2018/11/06(火) 21:46:50.14ID:QHiQfJwC
>>759
いや、ありがとうございます。。。
2行目を or から始めてもW503でした。あと、E129も出でます。
E129は2行目の or を if の i から数えて8文字インデントしたら消えました。
0765デフォルトの名無しさん
垢版 |
2018/11/07(水) 01:15:28.23ID:+978RLDn
>>744
Ruby の、CGI.escapeHTML みたいな、HTML エスケープだろ

Python にも、そういう関数があるはず。
ライブラリを探せ

全言語にある!
Google に「html escape」と入れれば、補完で全言語が出てくる。
php, javascript, java, ruby, python ズラズラっと

そういう一般的な関数を、自作したらダメ。
自作したものは、ライブラリよりも品質が低いから
0767724
垢版 |
2018/11/07(水) 10:31:30.88ID:eBlvm3p7
>>754
from xml.sax.saxutils import escape
text = 'あいうえお'
text = f'~{text}~'
text = escape(text, {'*': '&#42;', '~': '&#126;', '': '', '': ''})
上は実際には半角です。

textをSlackに送信すると、Slackでは、~あいうえお~と表示して欲しいんですが、
&#126;あいうえお&#126;
と、表示されてしまいます。
どこが間違えてますか?

あと、
* を置き換える文字列は&#42;(半角で)のように、
` を置き換える文字列
_ を置き換える文字列
ってどうやって調べたらよいんでしょうか?

>>762
自分のバージョンはPython 3.6.4、flake8 3.6.0でした
0770デフォルトの名無しさん
垢版 |
2018/11/07(水) 18:19:51.85ID:aDO62va+
https://dotup.org/uploda/dotup.org1686239.png

>>> import numpy as np
>>> from PIL import Image
>>> im = Image.open('dotup.org1686239.png')
>>> np.array(im)
>>> np.array(im)[:,-1::-1,:]
>>> Image.fromarray(np.array(im)[:,-1::-1,:]).save('dotup.org1686239_rev.png')

便利やね
python だぁぃすき
0771デフォルトの名無しさん
垢版 |
2018/11/07(水) 18:32:37.21ID:fvfWV4IU
conveert dotup.org1686239.png -flop dotup.org1686239_rev.png

ImageMagickのが簡単だよ
チンポ だぁいすき
0772デフォルトの名無しさん
垢版 |
2018/11/08(木) 17:18:54.41ID:vDDK8kog
if random.randint(0,1):
step=1
else:
step=-1

この場合のrandom.randintってどういう意味?
乱数で0か1が発生した場合に1、その他の数字のときelseって意味じゃないよね?
よくわからん
0773デフォルトの名無しさん
垢版 |
2018/11/08(木) 17:21:04.79ID:/8FytPr/
スクレイピングなんですがjava?でコンテンツが作られている動的なページはSeleniumのようなwebBrowserをさわって値を取るしか無いんでしょうか
vbaで似たようなのを作ったんですが読み込み等が遅く、処理の高速化を考えていたのですがSeleniumだと実現できないでしょうか
0775デフォルトの名無しさん
垢版 |
2018/11/08(木) 18:13:45.79ID:KFTKKYEO
>>774
コード読むとその解釈で合ってると思うけど、そのプロセスが理解できない
randint(a,b)ってa~bの中で整数を生成するんだよね?
randint(0,1)なら0か1のどちらかを生成する
つまりわからん
0777デフォルトの名無しさん
垢版 |
2018/11/08(木) 18:47:09.00ID:5iWhW6P3
>>775
PyhonのTrue, Falseは0, 1と等価
実際True+Trueを評価すると2になる
0778デフォルトの名無しさん
垢版 |
2018/11/08(木) 19:50:06.88ID:KFTKKYEO
TrueとFalseがランダムに生成されるんだろ
つまりif節の中にTrueもFalseも入ってることになんね?
0782デフォルトの名無しさん
垢版 |
2018/11/08(木) 20:21:32.77ID:KFTKKYEO
if random.randint(0,1)==True:
と同じ意味だよね?
これなら簡単に理解できるけど、==Trueがなくても文法として成立するのがよくわからない
0786デフォルトの名無しさん
垢版 |
2018/11/08(木) 21:02:16.60ID:dNW1RU/q
主流言語はみんなそんな感じなんだけどPythonは比較演算子強制でも良かった気もしないでもない。
でも、
bool値を返すisBigメソッドを実装したクラスChinkoがあったとして…
myChinko = new Chinko(16)
if myChinko.isBig():
と自然な英文風に書けるというスゴイ利点もある!
ちなみに12以下だとFalseを返します
0787デフォルトの名無しさん
垢版 |
2018/11/08(木) 21:03:49.60ID:JRn9O86F
>>778
1とTrue、0とFalseを同一として認識するのは明らかに間違っている
0788デフォルトの名無しさん
垢版 |
2018/11/08(木) 21:04:47.54ID:j6Jh7/pK
自然言語風に書けるのはデメリットやぞ
0792デフォルトの名無しさん
垢版 |
2018/11/08(木) 22:07:08.42ID:j6Jh7/pK
ゴミって些末な事ばかり気にしてゴミコードってゆうよねw
0794デフォルトの名無しさん
垢版 |
2018/11/08(木) 22:14:43.87ID:j6Jh7/pK
言うはゆうて読むんやで
0796デフォルトの名無しさん
垢版 |
2018/11/08(木) 22:30:06.41ID:j6Jh7/pK
バカのくせに人の事バカってゆうの恥ずかしいよバカw
0797デフォルトの名無しさん
垢版 |
2018/11/08(木) 22:32:56.23ID:KFTKKYEO
ちなみにこういう省略って他にどんなのある?
他の文法で省略あったらまた騙されるなー
0801デフォルトの名無しさん
垢版 |
2018/11/08(木) 23:20:05.30ID:QHwNiY6E
>>773
5ch みたいな動的または、ajax などの非同期処理で、ページの内容を取得しているものは、
その内容が読み込まれるまで、その要素や内容は存在しない

5ch なら、まず空のHTML を送ってくるから、ajax で読み込まれるまで、内容が存在しない

漏れはRuby で、Selenium WebDriver を使って読み込んでいる。
その要素が出現するまで、wait される。
簡単なのは10秒ぐらい、sleep すればよい

5ch なんか、バグが多いから、JavaScript が無限ループしたりして、
30秒待っても、Selenium WebDriverから、そのページへアタッチ出来ないこともある
0803デフォルトの名無しさん
垢版 |
2018/11/08(木) 23:44:41.94ID:mrd9U+a3
50%の確率で2つの処理を選択したい場合によりスマートな書き方はありますか?今はべたべたにこう書いてます
if np.random.rand() > .5:
do1()
else:
do2()
0804デフォルトの名無しさん
垢版 |
2018/11/09(金) 02:19:40.37ID:19dRG8QF
(do1 if np.random.rand() > .5 else do2)()
0805デフォルトの名無しさん
垢版 |
2018/11/09(金) 04:00:11.42ID:bq31MDXV
すごい!そんな書き方があるのですね。
よければ何という記述方法か教えてもらえますか?(どうやって調べたら出ますか)
0807デフォルトの名無しさん
垢版 |
2018/11/09(金) 08:30:00.34ID:0hfWLYYN
pycharmでshadows name xxx from outer scopeっていうwarningが出るんだけど、これは何が問題なんや
0808デフォルトの名無しさん
垢版 |
2018/11/09(金) 09:42:26.78ID:VXODTqLC
同じ名前の変数が定義されたことで
外のスコープの変数が隠されている
という警告
0810デフォルトの名無しさん
垢版 |
2018/11/09(金) 10:18:23.10ID:19dRG8QF
>>805
三項演算子
可読性下がるから使い過ぎはお勧めしない
0811デフォルトの名無しさん
垢版 |
2018/11/09(金) 11:58:21.04ID:p9aTnaT/
ちょうど1/2の確率が欲しいとき
if random.rand(0, 1) > .5:
が正解?
それとも
if random.rand(0, 1) >= .5:
が正解?
どっちも間違い?
0812デフォルトの名無しさん
垢版 |
2018/11/09(金) 12:04:45.46ID:mwKVhTqG
どっちも間違い

だが少なくとも
random.rand() > .5
では偏りが生じる
0814デフォルトの名無しさん
垢版 |
2018/11/09(金) 12:41:31.35ID:ZavMgXDP
Openpyxlでエクセルシートをリスト化した後
シート名を条件に抽出することはできますか?
すみません、調べてもわかりませんでした。
0815デフォルトの名無しさん
垢版 |
2018/11/09(金) 13:11:43.28ID:XhL65g6u
>>811俺だったらこうする
if random.randrange(2):

「一定回数抽選すると、AとBの出現率が必ず1:1になる」ことを求めているならシャッフルを使う
a=[0]*50+[1]*50
random.shuffle(a)
0816デフォルトの名無しさん
垢版 |
2018/11/09(金) 13:44:15.88ID:lOOqdq/Y
deapのbase.Fitnssでweightsの動き方がよくわからないんですが
仕様を説明したサイトはありますか?
0817デフォルトの名無しさん
垢版 |
2018/11/09(金) 13:47:08.53ID:iep8j/69
>>814
シート名は .get_sheet_names()でリストでとってこれるから
とってきたあと
1つ1つのシート名でifすればいいだろ
0819デフォルトの名無しさん
垢版 |
2018/11/09(金) 14:27:01.20ID:D1KL18mO
python2.7 pandasのto_csvでの出力、文字コードについてです
utf8のdfがありコレをsjis(sjisで表現出来ない文字は無視や?置き換えで良い)にしてcsvにしたいです
調べると
with codecs.openでencoding='cp932' errors='ignore'で出力ファイルを開き
df.to_csv(ファイルオブジェクト, encoding='cp932')
で出来ると書いてあったのですが普通にUnicodeエラー出ます
何が原因でうまくいかないんでしょうか、また他の解決法なにかありませんかね
0821デフォルトの名無しさん
垢版 |
2018/11/09(金) 16:18:25.51ID:aAkZVDrn
PythonがWEBで覇権取れば最強のスクリプト言語になるのにな
Djangoとかいうゴミはいいから早くRailsとかLaravel並みにいいフレームワーク作ってくんね?
0822デフォルトの名無しさん
垢版 |
2018/11/09(金) 17:36:50.37ID:rwK1ciOK
GoogleってWEB開発にPython使ってるらしいけどフレームワークはDjangoなのかな?
社内で別のフレームワーク使ってんだったら公開してほしいな
0823デフォルトの名無しさん
垢版 |
2018/11/09(金) 19:22:48.23ID:lOOqdq/Y
>>818
それは読んだんですが多目的最適化で10倍や100倍に設定したら具体的にどう評価を変えているのかが書いていなかったので
0824デフォルトの名無しさん
垢版 |
2018/11/09(金) 19:31:33.70ID:iep8j/69
>>823
weights って重み付けだから、
いっぱいのときも逐一自分で指定するもんじゃないの

>多目的最適化で10倍や100倍に設定したら具体的にどう評価を変えているのか
俺にはちょっとなにいってるのかよくわかんない(´・ω・`)

各重みの最適値さがしなら
プロジェクト・しらみつぶし が たぶん一番いい・・・
0825デフォルトの名無しさん
垢版 |
2018/11/10(土) 12:15:02.20ID:seRmY1tJ
https://stackoverflow.com/questions/42866743/lambda-function-explanation/42867119

repeating_data = reduce(lambda l, x:
l.append(x) or l if x not in l else l,
columns['Hello'], [])

Columns["Hello"] has [1,1,2,3,4,5,6,6,7,8,9,9,10,0]


このlambda式のl.appned(x) or lの"or l"と
if x nor in l else lの"else l"がよくわからないんですが、
つけないとエラーになるので必要なのでしょうが、どのような意味なのでしょうか?
0826825
垢版 |
2018/11/10(土) 12:26:13.87ID:seRmY1tJ
質問ばかりで申し訳ないのですが、なぜこの式でreduceを使っているのかもよくわかりません。
reduceでぐぐるとすべて畳み込んで計算すると書いてあるところが多いのですが、関数がl.append(x) or lなので違うのでしょうか?
0827デフォルトの名無しさん
垢版 |
2018/11/10(土) 13:07:05.83ID:u9Es1usX
>>825-826
条件式(他言語のいわゆる三項演算子や条件演算子と呼ばれる物の代替)
https://docs.python.org/ja/3/reference/expressions.html#conditional-expressions
そしてlist.appendの戻り値はNoneなので常にorの右辺が評価され返される

つまり新しいリストに含まれていなければ追加し、さもなければそのまま
あとは先方のレスにもset使えと書かれてると思うけど。reduceの動作は以下
https://docs.python.org/ja/3/library/functools.html#functools.reduce
0828826
垢版 |
2018/11/10(土) 13:46:44.78ID:seRmY1tJ
>>827
丁寧なレスありがとうございます。list.appendの戻り値がNoneだなんて意識しないで使ってました。
破壊的メソッドだからなんだそうですが、自分でもうちょっと勉強してみます。
0829826
垢版 |
2018/11/10(土) 15:23:32.40ID:seRmY1tJ
if x not in l else lの"else l"を省略すると
SyntaxError: invalid syntax
が出るんですが、通常のif文の場合はelse以下がなくても問題ないと思うのですが、
なぜこの場合はだめなのでしょうか?
0830デフォルトの名無しさん
垢版 |
2018/11/10(土) 15:39:38.87ID:hLxIIZfE
>>829
それは
> if x not in l else l
じゃなくて
> l if x not in l else l
なの
>>827が言う条件式って奴
式1 if 条件 else 式2
で、条件が真と評価されるなら 式1
条件が偽に評価されるなら 式2
を返す
なので else 式2 がないと困っちゃう
(None を返すという選択肢もあったとは思うけど)
0831デフォルトの名無しさん
垢版 |
2018/11/10(土) 15:48:08.55ID:seRmY1tJ
>>830
else lのlをNoneにしてみたら、
TypeError: argument of type 'NoneType' is not iterable
とでてしまいました。
でもなんとなく前よりはこの式がわかったような気がします。
どうもレスありがとうございました。
0832デフォルトの名無しさん
垢版 |
2018/11/10(土) 17:30:59.29ID:16GnFLu/
>>829
>>827が条件式(他言語に倣って三項演算子と呼ばれることも)だって教えてくれてるじゃん

値1 if 条件 else 値2
条件が真と評価されたら値1を、偽と評価されたら値2を返す
0833デフォルトの名無しさん
垢版 |
2018/11/10(土) 18:12:02.74ID:hLxIIZfE
>>825
そもそもこのラムダ式がちょっとトリッキーなんだよね
lambda l, x: l.append(x) or l if x not in l else l
俺なら
def f(l,x):
__if x not in l:
____l.append(x)
__return l
を定義して
repeating_data = reduce(f, columns['Hello'], [])
ってやると思う
0834デフォルトの名無しさん
垢版 |
2018/11/10(土) 18:14:37.23ID:GvdPZ72d
>>831
lをNoneにするってのは830の間違い
0835デフォルトの名無しさん
垢版 |
2018/11/10(土) 18:59:26.03ID:8RKiULCU
>>830
偽の時は空値返す二項版条件演算子みたいな糞を実装してる言語って何?
有効な使い道が思いつかん
0840デフォルトの名無しさん
垢版 |
2018/11/10(土) 21:43:36.94ID:Kjka4QLz
やっかいなnullを扱いやすくする為に実装された演算子と
偽を受け取ったぐらいで無駄にNoneを返す>>830がかんがえたさいきょうのじょうけんしきなんて別物どころか真逆だよな
実際、Noneを返したんじゃ>>831こうなるだけだし
0842デフォルトの名無しさん
垢版 |
2018/11/10(土) 21:52:55.81ID:hLxIIZfE
>>840
> やっかいなnullを扱いやすくする為に実装された演算子と
実装の目的と

> 偽を受け取ったぐらいで無駄にNoneを返す>>830
演算子の機能の区別もつかないアホだったのか…

> 実際、Noneを返したんじゃ>>831こうなるだけだし
マジでアホなの?
リスト要求される所にNone与えただけの話だぞ、それ w
0848デフォルトの名無しさん
垢版 |
2018/11/10(土) 22:11:20.00ID:7gTt1pZ+
まだまだ
0851デフォルトの名無しさん
垢版 |
2018/11/10(土) 23:22:42.45ID:sSiPAoa8
>>850
そういうのは需要があるから実装されてるんだよ
Noneなんて返されても無駄なチェックコードが増えるだけ
単にelseで適切な値を返すだけでいい
0856デフォルトの名無しさん
垢版 |
2018/11/11(日) 10:30:49.61ID:ZIQY97Xr
ttps://ja.wikipedia.org/wiki/%E7%A6%8F%E5%B2%A1IT%E8%AC%9B%E5%B8%AB%E6%AE%BA%E5%AE%B3%E4%BA%8B%E4%BB%B6
0857デフォルトの名無しさん
垢版 |
2018/11/11(日) 11:34:11.51ID:LFgZgESJ
へーっ、こんな事件があったんだな
フルボッコされての犯行か
ならまともな反論もできなくなった>>853とか言ってやれよww
0860デフォルトの名無しさん
垢版 |
2018/11/11(日) 13:36:01.34ID:96wp+TZd
>>828
まさか普段ruby使ってる?
0862デフォルトの名無しさん
垢版 |
2018/11/11(日) 16:41:23.18ID:kuiXddTN
ファイルに定義されている関数名を知る方法ありますか?
関数名だけです。
0863デフォルトの名無しさん
垢版 |
2018/11/11(日) 17:56:29.41ID:96wp+TZd
globals()
locals()
0864デフォルトの名無しさん
垢版 |
2018/11/11(日) 23:32:22.24ID:ARqR0CiK
>>828
Ruby ではメソッド名に、! がつく、破壊的メソッドが、nil を返すことがある。
破壊的メソッドとは、レシーバ自身を変更するもの

line.chomp! # 末尾の改行を削除する
line.empty? # 空行かどうか?

chomp! は、末尾に改行が無くて、削除しなかった場合に、nil を返す

line.chomp!.empty?

上記のようにメソッドチェーンすると、nil から、empty? メソッドを呼び出そうとして、
エラーになるから、メソッドチェーンできない

ただし、最近のバージョンでは、nil 許容演算子が追加されて、
メソッドチェーンしてもエラーが起きなくなった

jQuery では、メソッドチェーンしてもエラーが起きない
0866デフォルトの名無しさん
垢版 |
2018/11/12(月) 21:09:17.74ID:XFjJOyuw
pd.read_html(url)で読み込んだテーブルのある列をtable.sort(by= )でソートしたんだけどその結果が
0
1
2
3
4
1
2
3
みたいに微妙な並び替えになっちゃうのはデータにどんな原因があるの?
0867デフォルトの名無しさん
垢版 |
2018/11/12(月) 22:43:29.16ID:ku9n7fSu
#シート名取得
all_sh = book.sheetnames

#シート名が「ss」で終わるものを抽出
all_sh_ss = [s for s in all_sh if s.endswith('ss')]
print(all_sh_ss)

・・この後、シート名が「ss」で終わるシートだけから
特定セルA1の値を抽出したいんですが・・・行き詰まりました。
わかる方いたらご助言をお願いします。
0868デフォルトの名無しさん
垢版 |
2018/11/12(月) 23:10:34.73ID:JEwLf6Zk
>>867
じゃあ次はその抽出した文字列のリストでWorksheetオブジェクトを取得してみようか
0869デフォルトの名無しさん
垢版 |
2018/11/12(月) 23:21:23.98ID:JEwLf6Zk
>>866
read_html(url)で返ってきたリストにそのままソートかけてそう
まずはどんなリストが返ってきてるかそのまま表示してみたら?
0870デフォルトの名無しさん
垢版 |
2018/11/13(火) 11:11:30.00ID:dBAvKT8b
829さんじゃありませんが、横レスで関連する質問があります。

https://stackoverflow.com/questions/38417677/why-am-i-getting-a-syntax-error-for-this-conditional-statement

You're getting the SyntaxError because you're using a conditional expression without supplying the else clause which is mandatory.

The grammar for conditional expressions (i.e if statements in an expression form) always includes an else clause:

と書かれていますが、lambda文以外の普通のif statementsの場合、elseがなくても問題がない場合が多々あると思うのですが、
なぜ>>829の例がやこのリンク先の例だとelse以下がないとだめなのでしょうか?
0872870
垢版 |
2018/11/13(火) 11:17:02.91ID:dBAvKT8b
大事なこと書き忘れました。
リンク先読むとこのスレでも指摘されているように三項演算子なのでelseが必要とのことですが、
普通のif文と三項演算子ってどう区別すれば良いのですか?
0875デフォルトの名無しさん
垢版 |
2018/11/13(火) 12:11:42.35ID:p27/Ddjo
>>873
まぁそれで区別…できなくもないけどPythonに後置if文はないし役割が違う
というより明確に区別されるのは式と文で、式の中に文を書く事は出来ない
>>825みたいなlambda中の条件式はor含めなんとか値を返すための苦肉の策
0876デフォルトの名無しさん
垢版 |
2018/11/13(火) 12:36:07.85ID:X1xMRsix
ワンライナー()のために、処理を行うかの切り替えに条件式を悪用してるだけだからすこぶる行儀悪いわな
0877874
垢版 |
2018/11/13(火) 12:49:01.67ID:dBAvKT8b
>>875-876
レスありがとうございます。メモとっときます。
0878デフォルトの名無しさん
垢版 |
2018/11/13(火) 18:24:15.89ID:90McxFB4
さすがくだすれ
0879デフォルトの名無しさん
垢版 |
2018/11/14(水) 08:37:42.04ID:7XHx6tPI
本当に初歩的な質問で申し訳ないのですが
Openpyxlで読み込んだファイル名を出力することはできますか?
シート名、セル値はわかるのですが、ファイル名のやり方がわからなくて、、
0881デフォルトの名無しさん
垢版 |
2018/11/14(水) 09:08:29.36ID:7XHx6tPI
>>880
ファイル名はもちろんわかるんですが
それをセルに出力したいのです。
0883デフォルトの名無しさん
垢版 |
2018/11/14(水) 09:22:21.28ID:1aZXQx3x
>>881
Openpyxlは触った事ないけど、
調べた感じでは基本は↓でできるんじゃないの?
sheet = openpyxl.Workbook().active
sheet['A1'] = ‘ファイル名’
0884デフォルトの名無しさん
垢版 |
2018/11/14(水) 23:27:59.57ID:2v/yZNsE
ドキュメントのsubprocessのところをみると
似たような機能で
getoutput レガシーなシェル呼び出し関数
check_output 古い高水準 API
os.systemよりsubprocessを推奨
となっていて基本runが推奨で
他は使わないほうがいいとかあるんですか?
例えばいずれなくなるからとか。
それとも単にお勧めというだけなのか?
その辺の読み解き方がよくわからないです。
0886デフォルトの名無しさん
垢版 |
2018/11/15(木) 00:06:22.84ID:biHRXo8w
まあこれは一般論で
os.systemが廃止されることはないと思うし
これまでの経験からしてDeprecatedとマークされてから2バージョンくらい移行期間があるから
仮に無くなるとしても3年くらいは大丈夫だろう

その前にプログラミングに飽きている可能性の方が高い
0888デフォルトの名無しさん
垢版 |
2018/11/15(木) 13:46:36.75ID:djL3d80k
pythonでgui アプリ作るには、tkinterってやつでいいんでしょうか
そもそも作れますか?
0890デフォルトの名無しさん
垢版 |
2018/11/15(木) 17:29:06.18ID:djL3d80k
ありがとー
3dとかも扱えますかね?
0891デフォルトの名無しさん
垢版 |
2018/11/15(木) 18:07:36.78ID:/yCJioVE
>>888
matplotlibはGUIがtkでボタンもメニューも作れる
3Dも完璧
0892デフォルトの名無しさん
垢版 |
2018/11/15(木) 18:40:25.34ID:n3jFLh1o
完璧というからには、GPU支援とかも完璧なんだろうな。
0894デフォルトの名無しさん
垢版 |
2018/11/15(木) 19:44:19.96ID:djL3d80k
-m tkinter
でtkinterのバージョンを確認できるそうですが、chdirしないとだめなんでしょうか
デフォルトの場所だとinvalid syntaxエラーになります
0896デフォルトの名無しさん
垢版 |
2018/11/16(金) 17:42:33.52ID:IxhrRMJp
↑ありがとうございました
0897デフォルトの名無しさん
垢版 |
2018/11/16(金) 17:42:49.00ID:IxhrRMJp
idleだけで開発できますか?
不十分な点ってどこでしょうか
0898デフォルトの名無しさん
垢版 |
2018/11/16(金) 17:43:28.31ID:IxhrRMJp
あと、どういった環境使ってるか教えてください
pycharmというのはおもすぎてきつかったです
とりあえずatomにpython入れてやってます
0899デフォルトの名無しさん
垢版 |
2018/11/16(金) 19:30:29.81ID:no85NK4X
起動時間はpycharmの方が掛かるけど、
起動後はatomとかvscodeの方が描画周りとかまったりしてて重いと感じる。
拡張機能もたくさん入れることになるし。
0900デフォルトの名無しさん
垢版 |
2018/11/16(金) 19:55:41.74ID:IxhrRMJp
とりあえずidleでやってきます(´・ω
0902デフォルトの名無しさん
垢版 |
2018/11/16(金) 20:15:48.44ID:IxhrRMJp
tkinterってリファレンスないんすか(´;ω
公式がないですがすでに
0904デフォルトの名無しさん
垢版 |
2018/11/17(土) 09:50:58.58ID:eS8uuMhZ
pythonとopneglでblenderみたいなソフト作れますか
植物を自動生成したいだけですが
0906デフォルトの名無しさん
垢版 |
2018/11/17(土) 10:20:48.12ID:eS8uuMhZ
それはそうなんですが、勉強として
0907デフォルトの名無しさん
垢版 |
2018/11/17(土) 11:01:18.90ID:B4GISbTr
>>906
できるけど初心者なら
pygameの方が楽
0908デフォルトの名無しさん
垢版 |
2018/11/17(土) 12:26:38.54ID:z9owpr8+
>>522 ぺちぷ
<?php
function solve(int $n):int{
$a=0;
for($i=5;$i<=$n;$i*=5)$a+=intdiv($n,$i);
return $a;
}

foreach([1,5,10,1e2,1e6,1e16] as $i)printf("%d -> %d\n",$i,solve($i));
?>

1 -> 0
5 -> 1
10 -> 2
100 -> 24
1000000 -> 249998
10000000000000000 -> 2499999999999996
0909デフォルトの名無しさん
垢版 |
2018/11/17(土) 12:27:25.80ID:z9owpr8+
誤爆すまん
0913デフォルトの名無しさん
垢版 |
2018/11/17(土) 19:28:23.67ID:eQWBxdMf
おまえは存在がリアルテロやんw
0914デフォルトの名無しさん
垢版 |
2018/11/18(日) 00:50:16.86ID:mGYzq3D+
python2.7 ubuntu utf-8

requests使ってpostするんですけど
response.text.encode('utf-8')が文字化けします。
post先のページもutf-8なので文字化けする理由がわからなくて困ってます。
他の原因が考えられるでしょうか?
0915デフォルトの名無しさん
垢版 |
2018/11/18(日) 00:52:09.78ID:RRVp+pUX
は?他でない原因はなんやwww
おまえなんも原因の推測しとらんやんけwwwww
0917デフォルトの名無しさん
垢版 |
2018/11/18(日) 02:29:02.25ID:+Y8H8lPp
オブジェクト指向言語のRubyが今大人気!!

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

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

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

1枚だけならこうすればいいだけだから出てこないんだと思われる
0926デフォルトの名無しさん
垢版 |
2018/11/19(月) 21:10:19.46ID:m6msMsxr
説明が不足してました、失礼
勉強がてら自分でスクリプトを作りたくて
responseとbs4で、1枚目のurlからhttp://〜〜〜.jpgを
抜き取るとこまではできたのですが、そこからのダウンロード方法がよくわからないです
1枚のダウンロード方法が分かり次第for分で回す予定なのですが
0927デフォルトの名無しさん
垢版 |
2018/11/19(月) 21:11:32.92ID:m6msMsxr
↑requestの間違いです
0931デフォルトの名無しさん
垢版 |
2018/11/19(月) 22:03:04.22ID:m6msMsxr
>>928
ありがとうございます!
wをrに読み替えて実行したところ保存できたけど
処理が終わりませんでしたが、
>>930
で終わりました、勉強になりました!
バイナリ保存をもう少し勉強してみますm(_ _"m)
0932デフォルトの名無しさん
垢版 |
2018/11/19(月) 22:20:46.67ID:OVa0imR9
>>931
930のbinとwって単なる変数だからな
openのモードのrwbとがと関係無いからな
0934デフォルトの名無しさん
垢版 |
2018/11/19(月) 22:48:30.82ID:m6msMsxr
>>932
なるほどです
0937デフォルトの名無しさん
垢版 |
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 # 未実装です
0938937
垢版 |
2018/11/20(火) 05:21:34.81ID:0YIMqUF3
ライブラリの作者は、様々な、decode の実装方法があるから、ひな形だけは作っておくので、
ユーザーは派生クラスで、具体的なdecode の処理を、再定義して使ってください

もし再定義しなければ、何も処理しません
0940デフォルトの名無しさん
垢版 |
2018/11/20(火) 12:30:52.12ID:xneveUXp
>>939
いやそれ間違ってるから。

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

そいつはマ板で有名なpython知らないruby荒らしだから無視したほうがいいよ
0943デフォルトの名無しさん
垢版 |
2018/11/20(火) 16:39:53.72ID:5NbKWroI
>>933
しぇばん、importが済んだ後あたりに

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

って書いてみて
0944デフォルトの名無しさん
垢版 |
2018/11/20(火) 19:08:18.20ID:PIfvSzhu
ディレクトリ内に
aaa_000.txt
aaa_001.txt
  :
aaa_100.txt てな感じでファイルが保存されてたとします。
aaa_000.txt以外をglob.glob()で一覧化して取り出したいんですが
glob.globの引数に指定する正規表現、どうすればいけますでしょうか???
0947デフォルトの名無しさん
垢版 |
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)$")   も試してみましたがダメでした。
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使う必要性はないと思う
0958デフォルトの名無しさん
垢版 |
2018/11/20(火) 21:19:44.13ID:5NbKWroI
俺の環境(python2.7 Win7(XPからのアプデ))では
time sleepは常にラグい (`・ω・´)キリッ
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
ごめんね
0964デフォルトの名無しさん
垢版 |
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
0966デフォルトの名無しさん
垢版 |
2018/11/21(水) 18:42:34.45ID:vOPCMSrj
bashからpythonのCGIプログラムを実行するときにGETパラメータを渡す方法を教えてください。
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' )
0976デフォルトの名無しさん
垢版 |
2018/11/22(木) 08:55:38.42ID:GbIN7rVe
>>974
そんな基本的なことで自慢しなけりゃならないとはよっぽどショボい言語なんだなww
>>964 という状況に追い込まれるのも当然な気がするwww
0980デフォルトの名無しさん
垢版 |
2018/11/22(木) 13:34:33.95ID:blyr971h
次スレよろ
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+(?=\%)'
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]は、( )でキャプチャーした部分
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 の方が使いやすいと感じる
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はマッチしてもしなくてもイテレータが帰ってきちゃう
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
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 92日 6時間 34分 59秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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