Pythonのお勉強 Part60

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2019/04/30(火) 08:34:23.34ID:sH/UeeJ6
★当スレにRubyのソースコード類を書くことを禁ず★
☆Ruby等、Pythonではないプログラミング言語での回答類を書くのも禁止
☆「Ruby では」「Rubyでは」をNGワード登録推奨

◆エラーを解決したいときはエラー表示と
 環境(Pythonのバージョン・OS・IDEの種類とバージョン)をシッカリ書く

◆Pythonのソースコードを5ちゃんにコピペするとインデントが崩れるので
  ↓にあげてるような、ソースコード用サイトに貼ってきてくだしあ
    (スクリーンショットをimgurうp等の横着をしない)
ttp://ideone.com/      推定最大手。デフォ設定がCなので、Pythonするには選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう。
ttps://ja.osdn.net/pastebin/ ログイン必須になりやがった(゚Д゚#)

◇Pythonオフィシャルサイト
http://www.python.org/

◇まとめwiki
ttp://python.rdy.jp/

●関連スレ●
くだすれPython(超初心者用) その43【Ruby禁止】
http://mevius.5ch.net/test/read.cgi/tech/1555397061/

〇前スレ
Pythonのお勉強 Part59
http://mevius.5ch.net/test/read.cgi/tech/1552194662/

次スレの建立は>>985が挑戦する
2019/05/01(水) 03:32:33.32ID:+Ipdp7KR
>>28
未経験でプログラマー目指す、アドバイスくれしゃす
https://medaka.2ch.net/test/read.cgi/prog/1552123905/
2019/05/01(水) 03:32:39.26ID:sBsjxO6r
>>30
JavaScriptはECMAScript6以降は言語としてもちゃんとしているから悪くないと思うよ
2019/05/01(水) 03:46:32.83ID:+Ipdp7KR
>>35 とは言っても、HTML も知らない初心者が取り掛かる言語じゃないと思うけどな。HTML の下地があってからなら良いが。 HTMLも奥が深くなってきてるからそれだけでも大変だと思うよ。
いずれにしろスレ違いだね。
37デフォルトの名無しさん
垢版 |
2019/05/01(水) 04:20:07.85ID:fQT4rWd7
>>28
最初の言語をwebで学ばなければどの言語でも良いよ。
入門書通りにインデントしてれば。
変な癖付けて他人が見にくいコードでさえなければ。

言語の文法なんてすぐ覚える。
言語に依存しないアルゴリズムや、ファイル構造などのデータ構造の方が大事だし。
38デフォルトの名無しさん
垢版 |
2019/05/01(水) 05:23:44.13ID:c18BzvZQ
現在、機械学習の為の画像データセットを作成しているんですが、numpyを使って画像を配列にし格て納しnpyで出力すると、元の画像よりファイルサイズが大きくなってしまうものなのでしょうか?ファイルサイズを抑える方法は無いのでしょうか?
2019/05/01(水) 06:47:06.99ID:+jLxSkPT
npyは圧縮されてない
元画像が圧縮されているjpgやpngなら圧縮を解いたのだからデカくなって当然だろ
少しでも小さくしたいならnpzで保存しろ
それでも足りないならlzmaにでもパイプしろ

元画像が圧縮されていないフォーマットなら
サイズがデカくなるかは元画像のピクセル当たりのビット数とdtypeによる
元が32ビットの画像でdtypeがint64なら
単純に2倍以上になることは想像できるだろう
2019/05/01(水) 09:01:29.88ID:f7Dz6ZaI
ちょうどjsがpythonでなやんでjsから始めたところ
終わったらたぶんpythonやる
2019/05/01(水) 09:34:42.12ID:dVyc+Z+8
この言語とこの言語のどちらを学んだらいいか
という質問がよくあるけど、両方やればいいじゃないの
っていうかこの分野覚えることがたくさんあるから
両方使いこなせるぐらいの能力? やる気? がないと
生き残れないと思うが
42デフォルトの名無しさん
垢版 |
2019/05/01(水) 10:37:39.34ID:fQT4rWd7
>>41
そうではあるけど、興味のある分野に向く言語をある程度使いこなせるようになってから
次の言語に行った方がいいね。
文法だけは色んな言語知ってるけど、全部入門書レベルのプログラムしか書けない。じゃあ意味が無い。
2019/05/01(水) 10:58:49.92ID:sBsjxO6r
>>38
画像を加工してnumpyの配列が画像なら、画像として保存するのがいいと思う
opencvでもPillowでも画像として保存できる
2019/05/01(水) 13:13:51.23ID:bM7PiFk/
プロジェクト毎にvenv作ってるんだけど、プロジェクトには依存しないけどよく使うipythonみたいなパッケージをそれぞれに入れるのが面倒くさくなって来た
このようなパッケージはシステム側にインストールするってのでいいのかね
2019/05/01(水) 13:33:02.73ID:ph+vWZP9
最近、SESでPython!言ってる企業が増えた
本屋もPythonばっかだし
Pythonはできる人が少ない→単価が高い(SES企業が大喜び)
2019/05/01(水) 14:07:29.30ID:St0wO6DI
SESやってるような低学歴がPythonできても大した意味ねえんだけどな
低学歴だからその辺も分からないんだろう
2019/05/01(水) 14:19:56.11ID:ph+vWZP9
>>46
東大でもSESやってる奴も居るし、そんなにSESに不満あるなら、Python一生使ってろ
2019/05/01(水) 14:43:03.71ID:sBsjxO6r
>>44
多分ダメ
ipython kernel install ―userでインストールしても動かない
共通のjupyterに異なるvenvで分けた環境のpythonを動かすためには、venvで用意した環境にjupyter等がインストールされている必要がある
2019/05/01(水) 15:27:48.00ID:CCrIWR8u
pythonでエバーノートのサンプルコードがエラー使えない(´・ω・`)
50デフォルトの名無しさん
垢版 |
2019/05/01(水) 16:13:35.18ID:+erxvv1Q
>>44
ひとくちにipythonといっても、ipythonのバージョン違いが
他の依存パッケージの関係で必要とされることがあるだろうし、
システムに入った追加パッケージを使うと求めていないバージョンが入っていて、
バージョン依存解決できないことが多くなることを考えると、
システムの持ってる追加パッケージは使わない仕様になっててもおかしくなさそう。

調べてないから推測でしかないけど。
2019/05/01(水) 18:12:06.23ID:bM7PiFk/
>>48
>>50
ありがとう
やっぱ個別にインストールした方がいいみたいね
Pipfileのテンプレートでも作っておくわ(´・ω・`)
2019/05/01(水) 19:16:53.12ID:3SeJTIqy
GW中にFlask入門してアプリ作ることになった
53デフォルトの名無しさん
垢版 |
2019/05/02(木) 19:50:12.23ID:BDHsAqU+
ジャップモンキーは陰湿
滅びたほうがいいね
こういう民族は
差別で喜ぶ屑民族
54デフォルトの名無しさん
垢版 |
2019/05/02(木) 19:55:35.85ID:TaSBDpem
>>45
SESってなーに?
55デフォルトの名無しさん
垢版 |
2019/05/02(木) 19:57:46.30ID:TaSBDpem
>>53
糞ジャップというのは
日本国籍を取得した朝鮮人のこと
知らないの?
2019/05/02(木) 22:09:07.90ID:CW4Q/lka
質問です
私は愛知県在住なんですがデータ分析の仕事って愛知県にも一定量ありますか?

愛知県だと組み込み系は豊富にある一方、Web系はSESばかりですがデータ分析はどうでしょうか
2019/05/02(木) 22:26:50.81ID:w93CqAlI
インターネットがつながる環境があればどこにいても
仕事はあるよ

実績さえあればね
2019/05/02(木) 22:30:37.89ID:TQbK83Um
実績というか学歴
2019/05/02(木) 23:31:24.22ID:Kaz17+fm
>>56 自動運転系の仕事が沢山あるだろ。
2019/05/03(金) 08:09:33.41ID:pt9KmcCZ
python初心者ですが、
Excelからpythonへ文字列を渡し、ある処理の後に文字列をExcelに戻すことを考えています。
pythonへ渡すこと自体はできました。
---vba start---
dim str as string
str = "C"
dim result as string
result = shell("python opyopy.py"+str) 'WScript.Shellも試したよ
debug.print result
--- vba end ---
加工した文字列をexcelに戻す部分が調べても基礎が無いためか、動作するプログラムが作成できません。
数値しか返ってこない。
sysの場合、pythonは正常値0、それ以外は異常値として返すそうですが、
そもそも文字列を返すことはできるんでしょうか?
2019/05/03(金) 08:13:51.92ID:wEPfv8zd
>>60
"基礎が無いためか、動作するプログラムが作成できません。"

基礎からやれよ急がば回れ!
2019/05/03(金) 08:13:59.11ID:98hF1oLD
標準出力を使えばできるがお勧めしない
ExcelとやりとりしたいならCSVファイルを介するのが鉄板
2019/05/03(金) 08:24:30.29ID:pt9KmcCZ
>>61
もう一度、基礎からやり直してきます。

>>62
csv!!これなら、データを一括処理かつexcelとデータやりとりできます。

ありがとうございます!
2019/05/03(金) 08:56:40.53ID:jsJUV3Wl
>>63 一括処理するんならわざわざVBAなんか使わない方が楽だよね。

OpenPyXL Python から直接Excelシートの操作
又は
xlwings VBAマクロとしてPython を呼ぶ。VBAそのものをPython に置き換えたような使い方。遅い。(PyXLL も有るが有料)
他にもいろんな方法があるけど。

CSV 垂れ流しだと整形の手間が入る。
2019/05/03(金) 09:26:40.10ID:g3uSKodP
>>58
実績があれば学歴がなくても仕事は来るよ
学歴なしで実績を積むのがものすごく大変だけど
2019/05/03(金) 09:35:52.78ID:pt9KmcCZ
>>64
実はホストコンピュータへoleインターフェイス経由でデータ取得するvbaを組んでいます。
そのため、excelを前提にテキストデータのやりとりを考えていました。
(周囲が無識者なので、excel形式だと何かと他担当とのやりとりが楽なのです)

正直、wxpythonよりpyinstallerでアプリ化して、各担当がそれぞれデータ出力できるものをpythonで考えています。

ライブラリ教えていただきありがとうございます。
2019/05/03(金) 09:53:34.14ID:jsJUV3Wl
>>66 どんな社内システムがわからないから的外れかもしれないけど、自分ならサーバを立ててそこで全ての処理をして画面表示してみせる。
必要ならEXCEL 或いはCSV でダウンロードさせる。
これならクライアント側に特別なプログラムはいらないし、いちいちpyinstaller でexeを作る必要もない。
スマホやiPad でも利用出来る。
2019/05/03(金) 09:59:04.39ID:gAc7ekL8
クライアントにPython配るのは絶対やりたくないな
保守が悪夢
2019/05/03(金) 10:42:27.10ID:ymx7jYTc
python使ってどれくらい経ちますか?
2019/05/03(金) 13:04:47.51ID:uFwkPHb4
>>69
3年
2019/05/03(金) 13:06:34.72ID:uFwkPHb4
>>68
ソース丸見えだから?
2019/05/03(金) 13:10:43.99ID:pt9KmcCZ
>>67
お堅い環境なので、手続きが大変なのです。(そこまでやりたくない)
RPA連呼する、それを導入すればなんでもできると考える職場なので・・・。
お察しください。

>>68
exeの皮を被ったpythonさん・・・
最低限の面倒は見るけど、横暴故、極力保守しないように仕向けてます。
(逃げの姿勢じゃないんだからね!)

>>69
python自体は1か月ぐらいかな。このGWで一気に追い上げたような感じですね。
なお、職業プログラマじゃなくて、一般事務のおっさんである。
2019/05/03(金) 13:41:12.41ID:L8bdg7Rt
>>71 それもあるが、クライアントの環境によっては動かなくなったり、お守りが大変だからだろ。
いくらpyinstaller でガードしてもママっこOSのわがままには勝てないことがある。

>>72 わからないでも無いが、事務屋のおっさんには荷が重いかもしれないね。
RPAサーバーを業者が触らせないのかもしれないが、ただHTTPサーバの一部を使わせろと言うだけだからそんなに難しい話じゃ無いと思うけどな。 自分がメリットデメリットを理解できれば説得できるはず。
社内を説得できれば業者は従うはず。

将来を考えたらサーバー型にすべき。
事務屋としてはVBAの延長でPython を考えたいんだろうけど、
Excel VBA Windows は、Microsoft 純正でそこに多少の凸凹の行き違いがあっても短期間に責任を持って収集してくれるが、
Python との相性問題が出ても知らんぷりだから全部の責任を自分が被らないといけなくなるんだよ。
そんな危険は犯したく無いのがシステム屋。
また、pyinstaller でバージョンを固定しても将来のWindows のバージョンで動く保証はどこにもなく永遠に保守をし続けないといけなくなる。

社内を説得するための材料としてはモノタロウのケースを勉強してみたら?

自分はPython は今年に入ってから触り始めたけど、コンピュータは半世紀やってきたからシステムの問題には自信を持って言える。

ステップバイステップでやっていくのも1つの手段。 しかし将来像を頭に描いているかどうかで全体が大きく変わってくるよ。
2019/05/03(金) 13:51:18.51ID:L8bdg7Rt
試しに、自分のマシンでサーバーを立ち上げて社内LAN に繋がってるPCに使わせて見るという実験も良いかもしれない。
自分の勉強にもなるし。 Python で簡単にサーバーを立ち上げられるよ。
これだと社内全体を説得する必要はないし、LAN拠点毎に1つだけサーバーを立ち上げておけば良いし。
2019/05/03(金) 13:58:08.66ID:uFwkPHb4
>>73
文章長い人はPython向きじゃないな
2019/05/03(金) 14:24:44.06ID:Ul59Rvin
将来を考えたら google sheet 一択だろう
2019/05/03(金) 15:16:43.62ID:0Tydj9mo
一度運用に載せたら素人でも保守拡張できる程度に
最初に作り込まないと後が悲惨
78デフォルトの名無しさん
垢版 |
2019/05/03(金) 15:24:29.56ID:2qTilC2k
何をやりたいのかよくわからんが、

(1)クライアントPCから処理対象のexcelファイルをサーバのinputフォルダに置く
(2)サーバはinputフォルダを監視し、新しいファイルが来たらworkフォルダに移動して処理する
(3)サーバは必要であればoutputフォルダに処理結果のexcelファイルを置く

みたいな作りにしておいた方が後々苦労しなくて済むような気がする。
サーバはPandasライブラリ等を使えばexcelファイルを操作できるし。
79デフォルトの名無しさん
垢版 |
2019/05/03(金) 15:30:48.32ID:3Vz/qKoh
oleならwin32com.clientでええやん
VBAいらんで
2019/05/03(金) 16:55:17.14ID:pt9KmcCZ
>>73 >>74
貴重なご意見ありがとうございます。
また、モノタロウ?と思って調べてみました。こんなサイトもあるんですね。

http.server、ローカル環境が簡単に構築できそう。勉強になります。

>>79
はい、チェックはしています。試してないけど。

さて、単純な業務ツールをいろいろ作っている身として、あまり複雑なことはやりたくない。
抱えるのも辛いけど、属人化が一番嫌だから。
さっさと時代遅れの機械なんてさっさと無くして、サーバーを新規に構築してほしいですね。
予算が無いとか言いつつ、くらだん備品類で予算消化とか、他に金かける部分あるだろ!と思う今日この頃でした。
予算決定プロセス上仕方がないが。

お粗末さまでした。
2019/05/03(金) 17:45:15.23ID:iE5UbyHC
初心者だけど、rubyよりpythonの方がいいのかな?
2019/05/03(金) 17:55:35.15ID:hGfYoPM2
一番のカスはrubyとselfに過剰反応する奴
スルーシロヤ
83デフォルトの名無しさん
垢版 |
2019/05/03(金) 18:02:16.50ID:taX/i1G/

こいつカス
2019/05/03(金) 18:03:59.95ID:hGfYoPM2
誤爆した
2019/05/03(金) 18:21:26.99ID:1vSUmwo4
>>81
あなたが集団の同質性を重んじる典型的な日本人タイプなら、国内ではRubyの方が居心地がいいと思う
Pythonは高学歴同士が各々の専門知識を振りかざしてマウントを取り合う文化があるから一匹狼タイプ向け
2019/05/03(金) 18:23:27.75ID:5yeb5qFn
>>81
初学者にとってどちらが良いかは
・本人の目的
・将来性
・言語としての癖
を考えて決めれば良いと思うよ

言語としての機能はよく似てるけど立ち位置は随分と違う
今のところRubyはWeb系に強くPythonは分析や機械学習に強い
将来性についてはPythonかな、Web系は競合する言語が多い
言語として癖がないのはPythonで、Rubyは自由度が大きく拡張性も高い分、考えることが一つ多い
2019/05/03(金) 18:35:19.04ID:iE5UbyHC
>>85,86
サンクス。俺はCとJavaをかじった程度だけどCは古いしJavaはコンパイラが商用有料化するみたいなので簡単そうなRubyやPythonに興味が出てきたってわけ。
言語がいっぱいありすぎてどれにすればいいのか迷う
2019/05/03(金) 18:40:23.88ID:ymx7jYTc
>>85
わろた
2019/05/03(金) 18:48:44.44ID:L8bdg7Rt
流石にもうRubyやperlは忘れて良いだろ。 日本だけ少し永らえてたが既に世界からは忘れ去られようとしてる。
Python3 になってからはRubyの出番はない。

「The 2018 Top Programming Languages - IEEE Spectrum Ranking」
https://news.mynavi.jp/article/20180806-674740/
1. python
13. ruby
2019/05/03(金) 18:59:28.47ID:Mu7G7jjV
perl忘れたら、make出来なくなるよ
2019/05/03(金) 19:11:56.24ID:L8bdg7Rt
今生きてるのまで死ねとは言っていない。
新たに勉強する言語としては忘れて良いんじゃないのという意味。
2019/05/04(土) 00:31:01.80ID:eVWbARiE
一時期Ruby好きでメインで使ってたけど、もう二度と書くことはないだろうなって思う
2019/05/04(土) 02:54:05.63ID:rM1STB6K
朝鮮人なんてリアル社会人なら口に出せない筈の差別用語
社会常識をわきまえないネトウヨ的脳内PGがいるようだ
2019/05/04(土) 02:54:52.85ID:KBbEKpYD
PythonでWindowsのGUIが自動化出来るなんて話をよく聞くんだが
作者が行方不明のUWSCみたいに使えるんかこれ
代替に使えるんなら覚えてみるかな
2019/05/04(土) 05:37:33.76ID:u+QazaKa
>>94 PyAutoGui かな。

PyAutoGuiで繰り返し作業をPythonにやらせよう
https://qiita.com/hirohiro77/items/78e26a59c2e45a0fe4e3
できること

マウスの操作(移動/ボタン/スクロール)
キーボードの操作(テキスト入力/キー操作)
アラートウインドウの制御(通常のアプリケーションウインドウは操作無理)
イメージマッチング(bmp/jpg/pngで設定可能) ※opencv_python , pillow , Imageモジュールがあるとあいまい検索が可能
ピクセルカラー取得(特定座標または範囲の色を取得)
スクリーンショットの取得(全域/範囲)

画像認識型の自動化なので、seleniumライブラリなど別ライブラリと組み合わせを推奨。
単独だと、画像操作で何とかなるものに限る

Python + Selenium で Chrome の自動操作を一通り
https://qiita.com/memakura/items/20a02161fa7e18d8a693
ウェブの自動テストやスクレイピングで使われる技術です。
2019/05/04(土) 05:42:29.55ID:u+QazaKa
メールの自動化とかExcel の自動化とか色んなことができる。
2019/05/04(土) 07:29:54.64ID:u+QazaKa
>>80 もう一つ、Flask もチラ見しておくと良い。

簡単にブラウザベースでアプリが作れる。
自分が作ったアプリのパッケージ内にPythonが同梱されるのでユーザーにPython をインストールさせたりする手間はない。 pyinstallerも要らない。
実行させるとブラウザが立ち上がり、ブラウザの一つのタブとして実行される。

将来的にはサーバー上で実行させることもできる。
DB管理ツールの PgAdminはこれで作られている。
2019/05/04(土) 09:08:07.47ID:LJwIVFh6
ツイッターAPI使ったら
一瞬で規制された
2019/05/04(土) 13:57:18.11ID:eVWbARiE
>>98
sleep入れないと

apiごとに何分間に何回まで呼び出せるとか制限が違うから、調べて使わんといかんよ
2019/05/04(土) 14:32:39.46ID:vUC0We58
>>99
今の問題はsleepじゃないかも
去年くらいからAPIを叩くbotが軒並み繋がらなくなった
101デフォルトの名無しさん
垢版 |
2019/05/04(土) 14:42:55.81ID:tOD9kuur
python関連のツールって
バグだらけで使うのに苦労する
まじ殺意覚える

なんとか作ってもバージョンUPで
全てパー

pythonなんてイラネ
けど他に選択肢がない!
2019/05/04(土) 14:52:56.44ID:eVWbARiE
>>100
何に使ってるか分からんけど、自分はちゃんと使えてるよ

他人のアカウントで動くようなbotを提供するなら、10アカウントを超える場合は
有料の契約しないといけなかったかも
月3万円〜くらいらしい
2019/05/04(土) 14:53:23.92ID:k+B84EwL
3分間隔位でツイートしてるけどちゃんと繋がってるよ
2019/05/04(土) 15:00:08.38ID:eVIwB2YR
python の問題じゃないじゃんw
105デフォルトの名無しさん
垢版 |
2019/05/04(土) 15:22:01.33ID:Zf+/9VtM
>>101
具体的にどのツール?
2019/05/04(土) 16:01:26.35ID:YEgXwYHa
>>101
ざまあみろ
ゆっくり死んでいってね
2019/05/04(土) 21:12:27.28ID:ivT98XDJ
自分はアカウント作って手動でテストってツイートしたら即アク禁されたわ
NGワードだったのかねぇ
2019/05/05(日) 00:09:37.04ID:x93NAlVl
>>107
アク禁がどういう状況なのか分からんが、もしかしてOAuthに失敗してない?
あと、利用申請するときに利用目的とか書かされるけど適当に書きすぎてるとか?
2019/05/05(日) 00:35:50.38ID:NdndInZE
>>108
いやツイッター使ったことなかったんで
とりあえずアカウント作って一般ユーザーとしてテストってツイートしただけ
APIとか触る以前の問題
2019/05/05(日) 00:57:18.91ID:x93NAlVl
>>109
じゃぁ年齢制限にひっかかってない?
生年月日適当に設定して13歳以下とかになったりすると凍結される
あと、変なアカウントフォローしまくっても凍結される
2019/05/05(日) 01:11:53.54ID:NdndInZE
>>110
生年月日はフェイクだけど1980年にしてたから年齢制限ではないね
アカウントは作ったばっかりでフォロー等全くしてない
要は、出来立てのアカウントで内容の薄いツイートをしたことで何らかのフィルタにかかったんだと思ってる
2019/05/05(日) 02:47:13.57ID:tUOFrefg
>>111 そんなことは考えづらいな。
2019/05/05(日) 02:48:47.28ID:tUOFrefg
ブラックリストに載ってるVPN でも使ったんじゃないの?
2019/05/05(日) 02:52:32.65ID:eMsI3+wX
ここTwitter APIのフォーラムじゃないんで、調査についてはよそでやってくれると助かるよ
2019/05/05(日) 02:58:02.52ID:NdndInZE
そうそう
2019/05/05(日) 03:00:28.39ID:L5goONob
そうそう
117デフォルトの名無しさん
垢版 |
2019/05/05(日) 11:50:05.62ID:jDJFaPfq
WindowsでJupyter notebookというのを
使っています。
デバッグのときに、
ステップ実行とか関数内にはいってステップ実行
をするにはどうしたらいいでしょうか?
2019/05/05(日) 12:04:49.61ID:LZXMZ4hr
>>117
シフトエンター
2019/05/05(日) 12:05:09.17ID:TKrOuc6u
>>117
Jupyterはあくまでアドホック分析のツール
ステップインデバッグが必要になるようなことをするならVSCodeを使え
2019/05/05(日) 12:16:33.87ID:LZXMZ4hr
>>117
ごめんでデバッグは違う
121デフォルトの名無しさん
垢版 |
2019/05/05(日) 13:06:09.53ID:jDJFaPfq
>>118
>>119
>>120
ありがとうございます。
VScodeを使ってみます。
2019/05/05(日) 15:25:31.18ID:Lg7yPSQn
windowsにanaconda入れてpython使用中です
import msvcrtでputwchを使ってるんですけど、全角半角混在文字列を表示したとき、現在のカーソル位置をgetする関数ありませんか?
今は表示した文字のコードからカーソル位置を計算してますが、ちょっと面倒なので。
123デフォルトの名無しさん
垢版 |
2019/05/05(日) 16:15:39.31ID:vTdWYBgo
AllocConsole か ncurses
124デフォルトの名無しさん
垢版 |
2019/05/05(日) 18:39:16.67ID:pLuxMQOp
初めまして。win10でアナコンダ(最新)入れてスクレイピングを勉強し始めました。
本を読みながら作業をしているのですが、詰まるところがありお聞きしたいです。

コードは

(UHF=8にしてます)
import requests
import bs4
import csv
rs = requests.get('URL(仮)')
rs.raise_for_status()
sp = bs4.BeautifulSoup(rs.text.encode(rs.encoding), 'html.parser')
rcd = []

for elm in sp.select_one('#id(仮)'):
rcd.append(elm.string)

f = open('date.csv','a', newline='')
wrtr = csv.writer(f,delimiter=',')
wrtr.writerow(rcd)
f.close()

になります。
質問ですが
@ for elm in sp.select_one('#id'): の部分にfor elm in sp.select_one('#id').string: とするとエラー(AttributeError)になる。
しらべてみると二個以上ある場合?に .string は使えないとのことですが
どのようにしたらよいのか?
Acsvに落とし込むと文字化けする。上でuhf-8に指定しておりコーディングもしている。このようなときはどうすればよいのか?

教えてください。
2019/05/05(日) 18:50:49.81ID:Lg7yPSQn
自己解決
unicodedataをimportして
east_asian_width() を使う方が簡単ですね
失礼しました
126デフォルトの名無しさん
垢版 |
2019/05/05(日) 19:24:14.33ID:L5goONob
macのterminalでpython3をデフォルトにするにはどうしたらいいですか?
python3のファイルを$pythonで開きたい
2019/05/05(日) 19:25:47.99ID:L5goONob
python3はインストールされてます
2019/05/05(日) 19:35:04.86ID:L5goONob
自己解決失礼しました
2019/05/06(月) 05:18:25.39ID:wr9bFPpT
>>124
Ruby でスクレイピングしてるから、Python はあまり知らないけど、

>for elm in sp.select_one('#id').string:
sp.select_one('#id') に直接、.string は付かないのじゃないの?

複数の要素をループして、各要素にしてから、つなげれば?

for elm in sp.select_one('#id(仮)'):
elm.string

>f = open('date.csv','a', newline='')
ここでオプションで、UTF-8 か、sjis を指定できないの?
2019/05/06(月) 07:42:10.95ID:h2+b5pdE
select_oneをselectに
openの引数にencoding='utf-8'をつける
131デフォルトの名無しさん
垢版 |
2019/05/06(月) 08:48:46.09ID:llnuASGm
>>129 130
ありがとうございます。
ループ処理したらできました。こういうのはpythonのお作法なのでしょうか?
なんで直接つかないのでしょうか・・

>>130
id→classを選択することになりますよね。
select文でもid名で指定することができるのでしょうか?
2019/05/06(月) 09:28:43.88ID:h2+b5pdE
>>131
for文で繰り返したい場合、文字列ではなくて文字列を含むオブジェクトの集合だから、この書き方になる
つまり
[obj1,obj2,obj3]は繰り返せるし
文字列を取り出すのにobj1.string, obj2.string, obj3.stringもそれぞれ正しい
でも
[obj1,obj2,obj3].stringはなんのこっちゃ?となる

2つ目の質問に対しては、selectを使うならまずCSSセレクタを理解しないと上手く取り出せないよ
やりたいことはselectではなくてfind, find_allが適切かも知れない
2019/05/06(月) 09:33:36.17ID:h2+b5pdE
ちなみに上の説明は分かりやすくするためにlist使って説明したけど、実際にはイテレータでlistではないから注意
134デフォルトの名無しさん
垢版 |
2019/05/06(月) 11:01:31.13ID:kGkQS8+O
>>132
findのあとに.stringってつけれました?

[obj1,obj2,obj3].stringと同じになりませんか?私も個別に処理してたのでfindとstringの方法を知りたいです。
書き方の例を教えてほしいです
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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