くだすれPython(超初心者用) その40
■ このスレッドは過去ログ倉庫に格納されています
★当スレにRubyのソースコード類を書くことを禁ず
☆Ruby等、Pythonではないプログラミング言語での回答を書くことも禁ず
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。
エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line/OS)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで
前スレ
くだすれPython(超初心者用) その39
http://mevius.5ch.net/test/read.cgi/tech/1535064635/
◆PythonのHome Page
http://www.python.org/
◆まとめwiki
ttp://python.rdy.jp/
◆ソースコードをそのまま5ちゃんにコピペするとインデントが崩れるので
こういうところ↓にはってきてください
ttp://ideone.com/ Pythonするにはぷち手間あるのがめんどうかなぁ
ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/ まずまずシンプル。
ttp://dpaste.com/ とてもシンプル。消えるまでの日数を長めに指定しる。
ttps://jupyter.org/try (旧try.jupyter.org)ちょっとめんどうそう
ttps://ja.osdn.net/pastebin/ ログイン必須になりやがった(゚Д゚#)
−−−−天麩羅ここまで−−−− これでダメなら次はスレタイ入りだなw
【Rubyガイジ】【出入り禁止】 スタイル変換で遊んでみようと以下を落として実行してみたのですが、使えませんでした
https://github.com/alexjc/neural-doodle
yield x.decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x91 in position 6: invalid start byte
xの中身。bytesクラス
b'# 1 "<\x91g\x82\xdd\x8d\x9e\x82\xdd>"\r\n'
unicodeだったらbyteは3の倍数になるのかな、と思いましたが、
エラーの心辺りのある方いませんか? すいません、ライブラリのtheanoが何か変だったみたいです
>>6は無かったことにして下さい。 def dataframe():
途中省略
data=pd.Dataframe(◯◯◯◯)
こんな感じで作りたいものをデータフレームで取り出したんですけど、この変数dataを関数外でも使うにはどうすればいいんですか?
なんかグローバル変数とかあまり理解できてないようでうまくいきません DATA=pd.Dataframe(◯◯◯◯)
def dataframe():
途中省略
global DATA >>9
returnすればいいんじゃね?
def dataframe():
...
return data
利用者側
d = dataframe() >>11
なんかそっちのことがしたかったっぽいな >>9
10はまとはずれだからムシしておk >>6
unicode の各文字のバイト数は、決まっているのか?
家族などの変な記号もあるし
1〜6 とか、各文字で異なるのでは? 質問してるクルクルパーが使ってるコードはShift_JIS
で、utf-8は1〜4バイトのマルチバイトコードだからな
マジで質問してるヤツ回答してるヤツも知恵遅れしかいない
コレがウンコスクリプト使ってるようなヤツラの程度 >>17
だったら来なきゃいいのにPythonが気になって仕方ないから見に来るんでしょ?子供みたい Unicodeは文字に番号を振ったもの
UTF-8は文字に振られた番号の表現ルールと思えば良い
そしてUTF-8は旧来のLatin-1文字(半角英数字と思えば良い)を1バイトで処理し、それ以外の文字を最大4バイトまでの可変長で処理する、なのでバイト数決め打ちは無理
ところが長いこと4バイト表現の文字がほとんどなかったために、UTF-8を3バイトとみなして処理するプログラムがある、MySQLのutf8とかね
最近絵文字の導入などで4バイト表現が増えたので、最大3バイトと勘違いして解説してるサイトなんかを参考にするとコケるよ Ubuntuでtensorflowをインストールするのですが、Pythonの環境構築に使うツールはvenvやpyenvなど一杯ありますがどれ使えばいいんですかね? システムのpythonを汚さないようにするには、pyenvで特定のバージョンをインストールして、そのバージョンを利用して仮想環境を作るのが一番いいのかね(´・ω・`) もしUbuntuそのものが仮想環境ならaptでインスコして使い捨て環境にするのもあり それよく引用されてるけど
venvよりpipenvの方が主流になりつつあって先が読めてなかった感があるので更新して欲しい
venvはマルチバージョン対応しないよ 正直バージョン細かく指定してインストールなんてしないし2と3分けるだけならvenvで良くない?
デフォルトで入ってるし pythonに似た言語でパズル作りたいんですが2次元配列を教えてください
x_l=[0,1,2,3]
y_l=[4,5,6,7]
mix=[x_l,y_l]
print(mix[0][0])
この結果だと0になります
マスの位置を表す方法というのはどうしたらいいんでしょうか >>31
print(mix)してみれば、mixがどうなっているのかわかる。
[[0, 1, 2, 3], [4, 5, 6, 7]]
4×4マスのグリッドということならこういう事をやりたいんじゃないの?
[[[0, 4], [1, 4], [2, 4], [3, 4]], [[0, 5], [1, 5], [2, 5], [3, 5]], [[0, 6], [1, 6], [2, 6], [3, 6]], [[0, 7], [1, 7], [2, 7], [3, 7]]] ・どのようなパズルか?
・コードは何をしたいのか
・本当はどのような結果になって欲しかったのか?
・2次元配列の何を知りたいのか?
少なくともこの辺が分からないと答えられないよ Godot ゲームエンジンか?
Unity のBoo は、まだあるのか? progate で、文法でも勉強すれば?
2次元配列がわからないとか、文法書も読んでないだろ
Python が難しいなら、Ruby からやればよい dockerにPythonとライブラリ入れて開発してる人は居るんかな(´・ω・`) apiについて質問したいんですがコレってドキュメントが整備されてないものは使えないていうものなんでしょうか
あるapiでうまくいかず開発元に問い合わせたらドキュメント不備で必須パラメータ足りてませんでしたこのパラメータも指定してね
とか言われたんですがドキュメント見て分からないとき問い合わせしかないんですかね >>43
ソースコード直接読むか、ここでコード晒して質問してもいいかもな api側のドキュメント不備なのに呼び出し側のコード晒してどうするの?バカかな。 >>45
api提供側がドキュメント整備する義務なんてないんだよなぁ すまん、読み間違えた
>>43に聞いても時間がかかりそうだから
呼び出し側でも何をしたいかをコードごと晒した方が早いって意味で書いた >>43
公式のドキュメントを読む
公式フォーラムを読む
ぐぐってStackoverflowなどに同様の事例がないか探す
公式フォーラムできいてみる
金払ってサポート契約してるAPIなら問い合わせる
API側のソースコードを読む
Stackoverflowなどできいてみる
開発元が質問を受け付けてたらきいてみる(最終手段) ([[[[[)<
([[[[[)< ([[[[[)<
([[[[[)<
([[[[[)< ([[[[[)<
([[[[[)<
([[[[[)< おおっとここでダンゴムシの大群が! ([[[[[)<
([[[[[)< ([[[[[)<
([[[[[)< ([[[[[)<
([[[[[)<
([[[[[)< ([[[[[)< 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b) >>50
ありがとう
その手順全部踏んでたけど最近の製品らしく英語祭も含めて殆ど情報ないし問い合わせで良かったぽいのでとりあえず方向性はあってそうで一安心 スクレイピング勉強するとして、前提知識にjsonやらhtmlやら必要ですよね? 自慢じゃないが、最初は愚直に正規表現駆使して拾ってたぞw フロントエンドしか出来なかった頃は
html取得→そのhtmlにjs追加→jQueryで取得ってやってたな
今見たら奇怪なプログラムや フロントはjsとcssとhtml当たりのブラウザ向けのプログラムと思ってたけど違うの jQuery のCSS セレクターを学べ。Emmet も同じ。
Ruby のNokogiri とか
# . >
id, class, など
XPath は可読性が低いから、CSSセレクターの方がよい Pythonによるスクレイピング&機械学習 開発テクニック使って勉強してるんだけど難しすぎない?
こんなのみんなできるのかよ スクレイピングは本当にめんどくさい
機械学習やるならデータセット使ったほうがいいんじゃないか htmlからデータをインポートしてxlsxwriterでexcel形式に変換させるファンクション作らなきゃいけないんだけど
まず任意パースからのインポートの仕方がわからなくて躓いてる... 特定のモジュールから発生する例外だけをキャッチしたいんだけど、どうやったらいいですか?
例えば以下のnumpyモジュールの例外だけ検知したいです。
例外を替えたりなどhoge()メソッド内は修正しないで。
――――――――――――――――――――
import numpy
def hoge():
123 + ‘a’ #=>TypeError
numpy.zeros((‘dummy’)) #=> TypeError (こっちだけキャッチしたい)
try:
hoge()
except TypeError as e:
print(‘numpyモジュールで例外が発生しました。’)
―――――――――――――――――――― インデントを全角にして再投稿です・・
――――――――――――――――――――
import numpy
def hoge():
123 + ‘a’ #=>TypeError
numpy.zeros((‘dummy’)) #=> TypeError (こっちだけキャッチしたい)
try:
hoge()
except TypeError as e:
print(‘numpyモジュールで例外が発生しました。’)
―――――――――――――――――――― 例外をキャッチしたあとスタックトレースの中をみて処理を変えたら? どちらも同じTypeErrorだから片方だけキャッチするのは難しい
キャッチ後にエラーメッセージで判別する位しか思いつかん >>6
>TheanoはWindowsでPython 3.5と互換性がない >>61
データセット便利やな。
てかpython勉強して1か月で
クラスとか継承で詰んでるんだけど
ここ最初に理解すべきなのかな scrapy使いおるか?
csvに保存するときフォーマット指定できないの? フォーマットて列の並びとかのこと?数値の桁とかのこと?
並びのことならFEED_EXPORT_FIELDSに設定しろとドキュメントにある。
桁とかの表現なら、cssセレクタで値を取得してFieldオブジェクトに突っ込んだすぐあとに、欲しい値が入ってるところをフォーマット済みのテキストに書き換えるとかはどうかな。
公式ドキュメントではFieldオブジェクトはビルトインdictのエイリアスだと書いてあるので、書き換えても問題ないかと。 >>69
classが分からない状態で機械学習とか過激派やね
何にしろクラスは基礎中の基礎なので、
とりあえず一つのクラスを作成していじり倒せるようにしたほうがいい
クラスの継承やトレイト辺りは「あーこういう機能があるんだな」ぐらいでいい。自分だけで作るならそんなに使わない >>71
レスサンクス
FEED_export_field はsettings.pyに書けば良いのかな
Fieldオブジェクトっていうのは
items.pyの中で定義したクラスのことかな
辞書的に後から編集できるのか、じゃあ余計な部分をトリムしたりstrからintに変換できるな >>75
itemの処理はpipelineを使うのが本来のやり方なのかな
parseメソッドに書いたら汚れるよね >>76
あー自分は使い捨てで作ってたからpipelineは知らなかった
けどこっちのほうがよさそうね 改行が含まれた文字列をそのまま出力するにはどうすれば良いんでしょうか
test = '改¥n行'
print test
これで改行されずにシングルクォーテーション抜いた改¥n行が表示されるようにしたいです print test.replace(‘\n’, ‘\\n’) 以下のような、Ruby のヒアドキュメントみたいに、
書いたものがそのまま表示される、機能は無いのか?
特殊文字が解釈されないもの
text = <<'TEXT'
改\n行
TEXT
puts text #=> 改\n行 >>80
この板の人たち事情があってRubyをNG登録してる割合高いから「名前を言ってはいけないあの言語」とかで言い替えたほうが読んでもらえるよ。 BashやPerlといえばどうか…複数行文字列なら"""〜"""や'''〜'''があるし
RAW文字列ならrプリフィックスを付ける、文字列リテラルの連続は結合される お前らPythonごときでくだらない質問なんてしてんなよ
こんなのただのスクリプトだから早くなれろ from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('--headless')
browser = webdriver.Chrome(chrome_options=options)
browser.implicitly_wait(1)
url = "http://yahoo.jp"
browser.get(url)
file = open("source.html","w")
file.write(browser)
file.close()
上手く書き出せません。どうしたらいいでしょうか?
恐らく型が違うのだと思いますが、それでも無理矢理書き出す方法はありますか? TwitterのAPIの取得って審査厳しいの?
取った人おる? >>84
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('--headless')
browser = webdriver.Chrome(chrome_options=options)
browser.implicitly_wait(1)
url = "http://yahoo.jp"
browser.get(url)
hoge = browser.page_source
file = open("source.html","w")
file.write(hoge)
file.close() >>86
レスありがとうございます。
とても助かりました。
また、これについて何とかそのままの状態でもエラーを発生させなかったり、
エラーを勝手に保存することでプログラムを止めないで次に薦める方法はありますか?
Perlをよく使うのですが、Perlの場合型が違った場合でもその型?のメモリ番地?を保存してくれそこから容易に調べることが出来ます。
また、実用上プログラムが止まらないので助かることも多いです
同じような使い方が出来ますでしょうか? 参考までに、Ruby のnokogiri を使って、スクレイピングしてみた。
head > title を取得した
require "selenium-webdriver"
require "nokogiri"
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--headless')
options.add_argument('--disable-gpu')
driver = Selenium::WebDriver.for :chrome, options: options
driver.navigate.to "https://www.yahoo.co.jp/"
doc = Nokogiri::HTML( driver.page_source )
element = doc.at_css( "head > title" )
puts element.text #=> Yahoo! JAPAN
driver.quit >>87
>エラーを勝手に保存することでプログラムを止めないで次に
2系なら try except とゆう構文でエラー時エラーの種類と内容を書き出しつつ先へ進めさせることができるが
3系だとexceptのあとにエラーの種類を指定しないとおこられるようになったので
実質無理げー 例外の握り潰しか?
Ruby では、rescue で例外を捕捉しても、
何も処理せず、またはログを記録して、そのまま次の処理へ進む
例外の握り潰しは、やってはいけないのが常識だけど、面倒くさいならそうすれば?
ただし、仕事では禁止! >>1の冒頭に書いてもこれだからな。キチガイは始末におえない。
もうスレタイに書くしか。 >>85
7月にとったときは特に難しくはなかったよ、ただテストツイート一回でなぜかアク禁食らって一度取り直したけどw そっかー
残念!
仕事というか株の売買プログラムとかPerlで作ってるけど
再現性の低い通信エラーとか色々な理由で止まる方が困るからとりあえず動くのが大切
で、エラーが仮に出たとしても最後の所でしっかりとチェックして不正があれば全ての実行を取り消したり通知するようにしてるからミスが起こらない
プログラマとしてはダメなのかも知れないけど、自分で運用まで全て理解してやってると、とりあえず動いてくれる方が助かることも多いんだわ
頻度の少ないエラーとか全て潰してたら何年もかかるしね・・・
Pythonってとりあえず動かして、ちょっと修正してとかプログラムというよりもスクリプト的な使い方も多そうだから
エラーをスキップするような方法もあったら便利そうだけどかなり厳しい言語なんだな 漏れは、Ruby で、selenium webdriver を使うけど、
5ch, Showroom とか、しょっちゅうエラーが起きる
通信回線が混んでいると、1分掛かっても、全部を読み込めていないから、
外部プログラム(selenium)からアタッチできない
数十個のJavaScript を読み込むだろ。
延々と、アタッチできない状態が続く たぶん、向こうのサイトが、すべてのJavaScript を読み込んで、
idle 状態になっていないと、外部プログラム(selenium)からアタッチできない
アタッチ要求を出しても、ずっと待たされる >>93
うんこはperlに(・∀・)カエレ!!
そしてもう二度とでてくんな >>88
修正
driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.timeouts.implicit_wait = 30 # 要素の検索の timeout
driver.navigate.to "https://www.yahoo.co.jp/"
sleep 10
doc = Nokogiri::HTML( driver.page_source )
通信回線の込み具合は、どうにもならない
要素の検索のタイムアウトを設定したり、スリープして待つとか、
異なるサイトなら、タスクランナーで並列化するとか >>91
真正基地外はスレタイ変えたくらいじゃ書き込み続けるだろ
基地害だから 96も1に違反してるじゃんw
それに他の言語からやって来たのならそれで出来ることを聞くのは普通じゃね? >>99
どこが違反なんだよ
名前すら出すなとは書いてないぞ >>1 ■ このスレッドは過去ログ倉庫に格納されています