2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:2018/03/17(土) 16:32:25.91 ID:S1lkLDnv.net
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

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

前スレ
くだすれPython(超初心者用) その36
http://mevius.2ch.net/test/read.cgi/tech/1514805522/

269 :遊園地:2018/04/11(水) 10:02:21.51 ID:y+NDlg77.net
無効にする割合は、40ぐらいに設定して置いた方が無難

270 :遊園地:2018/04/11(水) 10:13:12.84 ID:y+NDlg77.net
優秀な奴が、労力をかける場所を間違わないと思うけどな。
ほんの1つのライブラリなんだから、他を探すのが正解だと思うぞい!ww

271 :デフォルトの名無しさん:2018/04/11(水) 12:37:06.54 ID:bG1z7LTF.net
マジレスするとstdoutのトラップで桶

272 :デフォルトの名無しさん:2018/04/11(水) 14:41:24.70 ID:nGNQyhwo.net
意地悪な憶測だがライセンスも読んでないに違いない

273 :デフォルトの名無しさん:2018/04/11(水) 23:09:57.05 ID:QNR3RY4l.net
まじめにライセンスを読むのはいかがわしい事を考えてる奴だけ説

274 :デフォルトの名無しさん:2018/04/11(水) 23:13:13.16 ID:DormuVYu.net
ぐう正論

275 :デフォルトの名無しさん:2018/04/11(水) 23:54:01.75 ID:VAa2HaB9.net
@GPS取得

Aネットにあるjsonを取得

BGPS内容・json内容を0.5秒おきに出力

↑の処理をするプログラムを組んでいます。
@はすぐ処理が終わるので問題ありませんが、Aは使用環境が外でモバイル通信を使用しているためかAの処理だけで最大5秒かかることがあってBの処理が大幅に遅れてしまいます。
Aのみ裏で処理して、@とBをループさせたいのですが、いい方法ありますでしょうか?

276 :275:2018/04/12(木) 00:05:44.68 ID:qBx4xR6B.net
先ほどの書き方だとjsonを0.5秒以内に取得するということになってしまうので修正します。

@GPS取得(0.5秒ごとに処理)

Aネットにあるjsonを取得(10秒ごとに処理)

BGPS内容・json内容を出力(0.5秒ごとに処理)

10秒に1回以外は@とBのループなので問題ありませんが、↑の処理だと10秒に1回はAを処理するときに時間がかかってしまってBの処理が0.5秒で処理できなくなってしまうのが問題です。

277 :デフォルトの名無しさん:2018/04/12(木) 00:15:41.74 ID:4IaDzy3O.net
2を実行するために1の結果が要らないならご自由に

278 :275:2018/04/12(木) 00:53:20.19 ID:qBx4xR6B.net
スレッドという処理があったのでこれを使えばいけそうでした
自己解決すみません。

279 :デフォルトの名無しさん:2018/04/12(木) 00:58:33.43 ID:3KpeTxH4.net
俺ならGPSロギングとJSON取得はそれぞれ全く別個に作って別プロセスで動かすわ
結果はタイムスタンプを使って後で結合すればいい

280 :デフォルトの名無しさん:2018/04/12(木) 01:08:15.09 ID:iaId0hiD.net
f = open("precictor_result.txt","a")
f.write(result," ",predict," ",data_test,"\n" )
f.close()
これだと、引数が多いとエラーが出る
,の代わりに+を使うと、数値として計算するようで、
TypeError: ufunc 'add' did not contain a loop with signature matching types dtype('<U21') dtype('<U21') dtype('<U21')
とエラーが出る

とりあえず、簡単に出力させて中身を確認したいがどのようするのがスマートだろうか?

281 :デフォルトの名無しさん:2018/04/12(木) 01:20:58.84 ID:ViqCrKfL.net
変数が何なのかは知らんが
>数値として計算する
なら文字列に変換すれば良いだろ

282 :デフォルトの名無しさん:2018/04/12(木) 01:27:04.11 ID:iaId0hiD.net
>>281
レスありがとうございます
変数全てに対して文字列に変換するのが面倒で・・・
例えば、
print(result," ",predict," ",data_test,)
であれば問題なく出力されますので
ファイルに保存する場合ももっとスマートにできる方法があれば助かります

283 :遊園地:2018/04/12(木) 01:37:46.68 ID:tAnO53/m.net
これで、良いのかな?

f = open('text.txt', 'r')
for i in f:
print (str(i))
f.close()

284 :遊園地:2018/04/12(木) 01:39:14.90 ID:tAnO53/m.net
見たら分かると思うけど、
f.write( str(i) )

と言う構想

285 :デフォルトの名無しさん:2018/04/12(木) 02:29:34.74 ID:iaId0hiD.net
ありがとうございます。
f.write( str(result) + " " + str(predict) + " " + str(data_test) + "\n" )
でうまくいきました。ただ、大量の変数を出力する場合、
標準出力ではうまくいくわけですから、全て文字列にキャストするのはちょっと面倒と感じています。
例えば、
print(result," ",predict," ",data_test)  #実際にはもっと多くの変数が並ぶ
こんな場合、これではエラーが出ますが、イメージとしては、
f.write( str((result," ",predict," ",data_test)) )
のような物でもあればもっと気軽にファイル出力できるような感じです

286 :デフォルトの名無しさん:2018/04/12(木) 03:01:07.44 ID:M9kW+xEA.net
str = [result, predict, data_test]
for i in str
f.write()

これで動くっけ?

287 :デフォルトの名無しさん:2018/04/12(木) 04:00:58.45 ID:T93bDVFD.net
>>275-279
スレッドは、同一プロセスだろ。
こういうのは、別のプロセスでよくある

数秒毎に書き込むプロセスAと、1秒毎に読み込むプロセスBがある

B は、ファイルをスタンプを見て、
新たに書き込まれた情報が無ければ、. を出力して、
新情報があれば、o を出力するみたいなやつ

制御・組み込み系で多い

...o....o...o.....o....o..

288 :デフォルトの名無しさん:2018/04/12(木) 04:10:10.14 ID:T93bDVFD.net
name = 'John'
age = 20 + 3

print "名前は #{name}、年齢は #{age}歳"

Ruby では、テンプレート文字列って言うのかな?
文字列の中で、式を展開できる。
最終的に、変数が文字列型に変換される

Python には、こういう機能が無いのか?

289 :デフォルトの名無しさん:2018/04/12(木) 04:49:22.42 ID:t3ixnFe0.net
>>280
printは引数を強制的に文字列に変換するうえに
キーワードオプションで出力先を変更できるから
以下で通るはず。空白も改行も勝手に入る
詳しくはドキュメントの「Python標準ライブラリ-組み込み関数」を参照

print(result, predict, data_test, file=f)

290 :デフォルトの名無しさん:2018/04/12(木) 06:25:29.02 ID:t3ixnFe0.net
>>288
文字列中での式展開はPython3.6から実装された
3.6以前ではこの機能がなく、%記法やstr.formatメソッドを使う

%記法
print("名前は %s、年齢は %d" % (name, age))

str.formatメソッド
print("名前は {}、年齢は {}".format(name, age))

フォーマット済み文字列リテラル
print(f"名前は {name}、年齢は {age}")

291 :遊園地:2018/04/12(木) 09:27:33.72 ID:tAnO53/m.net
>>285
データ構造が不明だから、何とも言えない。

何処かで、
 書き込むべき内容を1つのリストに纏めたり
できない?

292 :デフォルトの名無しさん:2018/04/12(木) 10:53:13.19 ID:iaId0hiD.net
>>291
Pythonを初めて2日目でデータ構造についても正直よく分かってないです
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn import cross_validation, metrics
from sklearn.externals import joblib
import warnings
warnings.filterwarnings("ignore")
mr = pd.read_table("test-data.txt",header=-1)
mr = mr[0:70]
clf = RandomForestClassifier()
clf = joblib.load('cars.pkl');
for row_index, row in mr.iterrows():
result = row.ix[0]
data_test = row.ix[1:]
predict = clf.predict(data_test)

f = open("test.txt","a")
print (result," ",predict," ",data_test )
f.write( str(result) + " " + str(predict) + " " + str(data_test) + "\n" )
# 標準出力を、ちょっとファイルに出力して中身を確認したいだけで全てキャスト(今は3つなので良いが10くらいになると面倒)するのは面倒なので上の行をもう少し簡素にしたい
f.close()

293 :デフォルトの名無しさん:2018/04/12(木) 10:53:50.49 ID:iaId0hiD.net
>>289
標準出力にその機能があるなら、writeでも何とかならないでしょうかね?

>>286
str = [result, predict, data_test]
for i in str:
f.write(i)
残念ながら、
TypeError: write() argument must be str, not numpy.int64
という結果が表示されます

294 :デフォルトの名無しさん:2018/04/12(木) 11:12:19.94 ID:t3ixnFe0.net
>>293
これはprint関数の機能だからwriteでは使えないよ
こう変えるだけなんだけど、どうしてもwriteじゃなきゃいけないの?

f.write( str(result) + " " + str(predict) + " " + str(data_test) + "\n" )

print(result, predict, data_test, file=f)

295 :デフォルトの名無しさん:2018/04/12(木) 11:18:36.95 ID:JyHXEe/D.net
resultとかの各変数の中身が文字列じゃない気がする

296 :遊園地:2018/04/12(木) 11:38:42.18 ID:tAnO53/m.net
pandasは触った事ないから、協力できない。

差支えが無ければ、test-data.txtの中身(記述形式)を教えてくれ。

でたらめな数値や造語で良い。そうしたら、何か分かるかも。

297 :デフォルトの名無しさん:2018/04/12(木) 12:03:51.11 ID:iaId0hiD.net
>>294
出力されたデータをExcelでグラフにしたり検証したい時などとりあえずテキストデータにしたいのです
普段はperlを使っているのですがそれだとprintそのままにファイルハンドルを付けるだけで
標準でもテキストでも好きに出力できるので同じような使い方ができればと思っています
どちらも出力させて、画面で分かるものはそれでいいですし、
詳細な検討がしたい場合はファイルをExcelなどで開いて再検討する感じです
また、pythonやpandasに慣れて居らずその結果が不安で適宜Excelの結果と照合したいというのもあります
本当はperlでやりたいのですが機械学習について調べているとPythonのモジュールを使う物ばかりで・・・

>>296
生データそのままです
0 1 1 100 99 98 97 101
0 1 1 101 100 99 98 97
1 1 1 97 101 100 99 98
1 1 1 98 97 101 100 99
1 0 1 99 98 97 101 100
1 0 0 100 99 98 97 101
1 0 0 101 100 99 98 97

298 :デフォルトの名無しさん:2018/04/12(木) 12:10:53.36 ID:CLTBB0jT.net
画面に出力する(普通にprintする)プログラムを作って、
ファイルに保存したい場合には
foo.py > filename
という風に実行する、
というやり方はご存知ですか?

299 :デフォルトの名無しさん:2018/04/12(木) 12:16:50.63 ID:rOwLVxdy.net
てかパンダ使ってるならそっちで出力すれば?

300 :デフォルトの名無しさん:2018/04/12(木) 12:40:44.41 ID:T93bDVFD.net
in/out を、標準入出力にしておけば、パイプでファイルにつなげられる

スクリプトファイル < 入力ファイル > 出力ファイル

301 :デフォルトの名無しさん:2018/04/12(木) 12:44:49.97 ID:iaId0hiD.net
>>298,300
おぉーその方法がありましたか
大昔DOSで使ったことがありますが完全に忘れていました!

>>299
とりあえずサンプルプログラムをそのままでpandasもpythonもまだ使いこなせていません
色々なtypeがある場合でも、さくっと出力してくれますか?

302 :遊園地:2018/04/12(木) 12:53:53.14 ID:tAnO53/m.net
聞けば聴くほど分からなくなってくる。

取りあえず出力したいなら、
>>290

303 :デフォルトの名無しさん:2018/04/12(木) 13:02:34.85 ID:O7jP9sqH.net
>>301
Pythonを初めて2日目じゃ何もわからないだろう
ここの連中が言っているアドバイスすら理解不能だろ
一通りさっとでもPython学習をやってから>>292のようなコードに臨んだほうが良い

304 :デフォルトの名無しさん:2018/04/12(木) 17:20:28.88 ID:t3ixnFe0.net
>>297
print(result, predict, data_test)  # 標準出力に出力
print(result, predict, data_test, file=f) # ファイルハンドル f のファイルに出力

これが理解できないならもうワシは知らん

305 :デフォルトの名無しさん:2018/04/12(木) 21:11:22.45 ID:iaId0hiD.net
>>303
貰ったアドバイスは一応理解できてると思う
ただ、以前perlを覚えた頃は掲示板をネットで調べたり、大量のサンプルプログラムを眺めたり
書き換えたりしながら完全に独学で覚えたから用語などがいまいち分からない
良い勉強方法があるなら知りたい
↓についても、その勉強方法ならアドバイスを聞くだけで分かりそう?

>>304
ありがとうございます
お手数おかけしましたが無事動作しました
fh.write()
としていて動作が失敗していました
コメントアウトしたら動作しました

306 :遊園地:2018/04/12(木) 22:31:11.19 ID:tAnO53/m.net
俺もperl5やってたけど、公式ドキュメントが有った。
それと同じ様にpython公式ドキュメントをやれば良い。

307 :デフォルトの名無しさん:2018/04/13(金) 19:12:20.04 ID:vvfD6Twp.net
pythonスレでperlとかrubyとか言い出す奴は
やべー奴ってことか

308 :デフォルトの名無しさん:2018/04/13(金) 19:46:32.40 ID:fIxp3q6f.net
そりゃCバリバリ書ける奴から見ればそうだろうな

309 :デフォルトの名無しさん:2018/04/14(土) 00:27:21.50 ID:fnrer+0Y.net
どこスレでもCとか言い出す奴はアルティメットアンタッチャブル

310 :デフォルトの名無しさん:2018/04/14(土) 00:27:46.56 ID:yt2qqJ9Q.net
>>307
このスレでperlとかrubyとか言い出す奴はperlとかrubyを超使えるやべーレベルの人だからな
そんな人からすればpythonは言語としてperlとかrubyより使えねーとなるだろうな。

311 :デフォルトの名無しさん:2018/04/14(土) 00:46:34.06 ID:EDFUWN6E.net
perlやruby使いが出てきたら、「機械学習」って唱えれば退散するよw

312 :デフォルトの名無しさん:2018/04/14(土) 01:05:01.45 ID:dSQ5MB/j.net
配列の要素数が、
len(list)

Python は、頭おかしいw
この式を、どう解釈せえっちゅーんや!

一方、Ruby では、オブジェクト指向。
ary.length

313 :デフォルトの名無しさん:2018/04/14(土) 01:25:52.09 ID:4BsAOclQ.net
>>310
いや、python使えねーって言うやつはある程度pythonを知っているやつだろう。知らなければ批判も感想もないわけだから。
俺もほとんどわからないから何とも言えない。これまでPerlやCばっかり使っててpythonやろうと思わなかったから。

314 :デフォルトの名無しさん:2018/04/14(土) 01:59:01.25 ID:yt2qqJ9Q.net
>>313
perlの人はPythonを少しは知っているだろ
Pythonプログラム書いているんだし

Perlの人はPythonならPython1日目よりsklearn、pandaを使ったプログラム書ける自信があるという感じで始めたんだろうが。
その自信の元はperlを超使えるやべーレベルな気がする
でも、スレで無様をさらすことになってしまったが

315 :デフォルトの名無しさん:2018/04/14(土) 02:08:23.29 ID:yt2qqJ9Q.net
ここは超初心者スレだからコミュ能力ないのはしょうがないのかもしれないが
perlの人のやりたかったのは>>280からだいぶ後の>>340
>普段はperlを使っているのですがそれだとprintそのままにファイルハンドルを付けるだけで
>標準でもテキストでも好きに出力できるので同じような使い方ができればと思っています
なんだろう。
最初にこれを出せば、面倒を連呼しなくて済んだのにな

316 :デフォルトの名無しさん:2018/04/14(土) 02:23:44.32 ID:RyWPXEl9.net
>>314
超使える訳じゃないけど、そもそもperlしか知らない
そのperlもまともに勉強したわけではなく
サバイバル英語の勉強方法みたいな感じで覚えたから元から無様ですよ
上でも書いたけど、作りたいプログラムを見つけてきたら
それをいじりながら勉強する感じでやってきた
とりあえず、様々なエラーが出たけど、エラーもでることなく10時間CPU回しっぱなしで動作してる
よく分からないながらでも、とりあえず書けば機械学習ができてしまうのは便利だと思ってる
>>311
まじそれ。perlでできるならわざわざ新しい言語を覚えようとは思わなかった
スコープの使い方まで違うし慣れるまで色々嵌りながら学習する必要があると思うと泣けてくる

317 :デフォルトの名無しさん:2018/04/14(土) 02:37:37.23 ID:BdA0jLra.net
perlってテキスト処理ぐらいしかやったことないけど
え、それだけ? ってぐらい簡単に書けちゃうとこがあって面白いね

318 :デフォルトの名無しさん:2018/04/14(土) 02:57:00.89 ID:lnTeyTPJ.net
>340 に期待

319 :デフォルトの名無しさん:2018/04/14(土) 02:59:10.50 ID:lnTeyTPJ.net
>>316-317
書き捨てならperlでも良いと思う
何ヶ月後か何年後かにメンテするときに
忘れてから(あるいは他人のもののメンテ)が勝負
pythonの方にしといて良かったと思える

320 :デフォルトの名無しさん:2018/04/14(土) 06:03:31.69 ID:5tg9pgD6.net
>>312
頭悪いなあ
Rubyにだってstrとかreadlineとかgsubとかあるだろ
pythonのlen(x)は中でx.__len__()を呼んでおり、お前の好きなオブジェクト指向(笑)だ
完全に実装者任せのrubyとは違い、Pythonがlen関数を使うことには下記の2つの意味がある
・メソッド名を確実に統一する(Rubyみたいに自由だとcountとか誤った名前を付ける奴が出てくる)
・__len__の返した結果が規約(必ず整数であること)に従っていることをチェックして保証する
Pythonの方がより規約を重視した高度な仕組みなんだよ

321 :デフォルトの名無しさん:2018/04/14(土) 10:47:57.74 ID:RyWPXEl9.net
>>317
本当にかんたんに書けるよな
Perl使ってる身からすれば、同じP言語だし可能な限りPythonでも簡単にできる方法が知りたくなる

>>319
他の言語は殆ど知らないので何とも・・・メンテかんたんなら良いね
Javaとかネットで良いと言われて、2週間頑張ったけど、長すぎる命令文が覚えきれずタイプが面倒で諦めた
今となっては当時作ったJavaアプリは命令文すら覚えていないから書き直すことすらできないけどね

322 :遊園地:2018/04/14(土) 11:49:28.86 ID:osRawEaB.net
35歳の話ですか?

323 :デフォルトの名無しさん:2018/04/14(土) 22:11:15.45 ID:nq6U0FpM.net
一回importしたモジュールを取り消すことできますか?

324 :デフォルトの名無しさん:2018/04/15(日) 00:11:09.27 ID:LyYRjAz1.net
気の持ちようで過去の事実は変えられる

325 :デフォルトの名無しさん:2018/04/15(日) 00:43:39.53 ID:zL8vaRCQ.net
関数の中でimportしたら、関数処理が終わるごとに解放されるの?

326 :デフォルトの名無しさん:2018/04/15(日) 01:30:36.11 ID:fSFvvger.net
>>325
Pythonはすごい賢い言語だから、importを頭に書いても
必要になった時に動的にインポートし、不要になったら解放してくれるんじゃないのかな。

327 :デフォルトの名無しさん:2018/04/15(日) 01:37:25.53 ID:fSFvvger.net
ただ、毎回インポート・解放すると時間が消費するから
そんなのやめて常駐にしたいときには、キャッシュしといてと指示すれば解放しないで常駐するように
する機能とかも提供している気がする。

328 :デフォルトの名無しさん:2018/04/15(日) 02:41:37.97 ID:K+msyNFc.net
なんだ妄想か

329 :デフォルトの名無しさん:2018/04/15(日) 03:19:09.43 ID:9PmxhzhB.net
試してないけどdel モジュール名はできないの
明示的に参照消したらさすがにガベコレしてくれるだろ

って妄想

330 :デフォルトの名無しさん:2018/04/15(日) 03:26:45.07 ID:9PmxhzhB.net
あまり行儀良くないけど、
使う関数の中でローカルにインポートしてもいいんだよ
いつ使うか分からんからどう扱うか知らんけど、ライブラリとか読んでると後始末に使うモジュールは大体そうしてる
例えば
def Quit():
 import sys, os
  各々のexit関数を試みる
みたいな感じで

これらは軽いからあまりいい例では無いと思うが、ちょっと他の例が思い出せないので

331 :デフォルトの名無しさん:2018/04/15(日) 05:43:37.19 ID:VXOW+WoG.net
>>321
Perl なら、Python ではなく、Ruby

332 :デフォルトの名無しさん:2018/04/15(日) 07:48:45.50 ID:TD/JmgSS.net
Ruby大好きおっさんかあんちゃん。爺さんはないだろうが。

333 :デフォルトの名無しさん:2018/04/15(日) 10:28:50.02 ID:bGi543fi.net
>>331
機械学習が目的だから無理

334 :デフォルトの名無しさん:2018/04/15(日) 10:37:38.96 ID:E1b18XLI.net
rubyはルピーとかルーピーを連想させるから無理

335 :デフォルトの名無しさん:2018/04/15(日) 11:04:43.82 ID:HCEWsKeI.net
Rubyは名前を呼んではいけない(アンカーをつけてはいけない)あの人みたいになると思うと無理

336 :デフォルトの名無しさん:2018/04/15(日) 11:25:09.21 ID:mh4srQnS.net
(´・ω・`)あのーパイソンって小学生でもひと月ぐらいでできるぐらいかんたんってきいたけどほんとなの?
らんらんもプログラマーになれるかなー?

337 :デフォルトの名無しさん:2018/04/15(日) 11:26:32.65 ID:mh4srQnS.net
(´・ω・`)アマゾンで参考書さがしてるけどおすすめの参考書はありますか?
パイソンの本ってむちゃくちゃ多いからまようー

338 :デフォルトの名無しさん:2018/04/15(日) 12:06:53.97 ID:VXOW+WoG.net
この本が、定本。
みんなのPython 第4版、2017

Python は、Ruby よりも難しい。
先に、この本を読め

たのしいRuby 第5版、2016

北大の湊真一が作った、ZDD なら、Ruby gem もある

339 :デフォルトの名無しさん:2018/04/15(日) 12:23:12.55 ID:E1b18XLI.net
>>336
webサイトで充分

340 :デフォルトの名無しさん:2018/04/15(日) 12:33:40.04 ID:Y8r4uZmH.net
パイチンくんの本がいっぱい出すぎで
どれを買っていいかわからないよ
みんなのパイチンくん
スラスラわかるパイチンくん
パイチンくん1年生
いちばんやさしいパイチンくんの教科書
いきなりパイチンくん
やさしいパイチンくん
パイチンくんからはじめる数学入門
独習パイチンくん入門
ホンキで覚えるパイチンくん
パイチンくん機械学習プログラミング

341 :デフォルトの名無しさん:2018/04/15(日) 12:36:21.44 ID:VXOW+WoG.net
「みんなのPython」が定本

そこへ、なでしこの作者・クジラ飛行机が参入した。
そこへ掌田津耶乃・大津真などの、多言語の作者も参入

342 :デフォルトの名無しさん:2018/04/15(日) 12:45:05.14 ID:E1b18XLI.net
rubyの本も急に沢山出た時期があるけど
流行りで出てくる本の九割以上は糞本
スルーでOK

343 :デフォルトの名無しさん:2018/04/15(日) 13:27:09.55 ID:BcrfAPr/.net
まあ流行りで本が沢山出るならまだ良い方だよ。それだけ売れるってことで、それはつまりやってる人が多いということだから。

344 :デフォルトの名無しさん:2018/04/15(日) 13:35:32.50 ID:fpkgMDqC.net
ディレクトリを指定してその中にあるファイルのパスをリストで取得できるモジュールとかないですか?

345 :デフォルトの名無しさん:2018/04/15(日) 13:51:11.42 ID:VXOW+WoG.net
Ruby なら、Dir.glob だけど、

「python list dir glob」で検索!

346 :デフォルトの名無しさん:2018/04/15(日) 13:58:56.84 ID:K+msyNFc.net
rubyが廃れた理由が分かるな。
いやrailsのバッテリーとして余生は安泰かwww

347 :デフォルトの名無しさん:2018/04/15(日) 14:28:51.90 ID:bGi543fi.net
Pythonではタブ記号の代わりにスペースを使う人が多いですが移動が面倒です。
タブ記号だと例えば、インデントが4つあっても4回の右キーを押すだけで移動できますが、
スペースの場合、16回くらい押す必要がありますよね。
どのようにしたらいいでしょうか?
エディタは秀丸を使っています。

348 :デフォルトの名無しさん:2018/04/15(日) 14:30:19.66 ID:Cnmy+aq2.net
>>347
・Sakuraエディタにのりかえる
・インデント機能を使った後、Tab->空白機能を使う

349 :デフォルトの名無しさん:2018/04/15(日) 14:40:56.80 ID:bGi543fi.net
>>348
Sakuraエディタは使ったことないけど、多分秀丸にも同じ機能はあると思うが、
タブにスペースを使うことが問題で
タブがスペースだと結局は16回、もしくは、ショートカットキーで飛ぶことになり面倒でない?

Tab->空白変換 機能は使ってるけど、
サンプルプログラムと手書きを何度もやりとりしてると
タブとスペースの混在で結構良い頻度でエラーになってしまう
統一したいと思ったり・・・

350 :デフォルトの名無しさん:2018/04/15(日) 14:46:01.79 ID:5EOPJhuZ.net
今時秀丸?
VSCodeとか使おうよ

351 :デフォルトの名無しさん:2018/04/15(日) 14:47:30.46 ID:CMfqpLbm.net
>>349
pythonファイルならスペース4つを一回で移動できるエディタたくさんあるよ

352 :デフォルトの名無しさん:2018/04/15(日) 14:57:48.74 ID:fpkgMDqC.net
>>345
globってそういう時に使うのですか
サンクス

353 :デフォルトの名無しさん:2018/04/15(日) 15:27:17.39 ID:Cnmy+aq2.net
>>349
うちは秀丸の設定で1タブ4半角スペース固定にしてる
それで
書いたらはしらせる直前に
全選択して Tab->空白

354 :デフォルトの名無しさん:2018/04/15(日) 15:37:38.38 ID:731FtqJf.net
ソフトタブだっけ?
俺Atomだけどスペース混在がどうのとか気になったことない

355 :デフォルトの名無しさん:2018/04/15(日) 16:10:57.24 ID:Cnmy+aq2.net
今ってたしか
タブとスペースの混在は('A`)ヴァーで
タブは(・A・)イクナイ
スペース4つにしましょうキャンペーン中じゃなかったっけ

356 :デフォルトの名無しさん:2018/04/15(日) 16:22:10.02 ID:7xK+P7p1.net
秀丸最強

357 :デフォルトの名無しさん:2018/04/15(日) 16:25:40.21 ID:7xK+P7p1.net
>>344
os.walk()
os.path.walk()
os.listdir()

358 :aiueo:2018/04/15(日) 16:44:03.35 ID:xfCmajNI.net
windows10
Python 3.6.5 C:\pythonにインストール済み
pip install -U selenium でseleniumインストール済み
ChromeDriver 2.37 インストール済み 
C:\chromedriverに入れて、Pathも通しました

aiueo.pyを作って、C:\myscriptフォルダに入れています
中身は、下になります
from selenium import webdriver
driver = webdriver.Chrome()

これを実行すると、
C:\myscript>python aiueo.py
Traceback (most recent call last):
File "aiueo.py", line 1, in <module>
from selenium import webdriver
File "C:\python\lib\site-packages\selenium\webdriver\__init__.py", line 18, in <module>
from .firefox.webdriver import WebDriver as Firefox # noqa
File "C:\python\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 20, in <module>
import http.client as http_client
File "C:\python\lib\http\client.py", line 72, in <module>
import email.message
File "C:\python\lib\email\message.py", line 10, in <module>
import uu
File "C:\myscript\uu.py", line 7, in <module>
options = webdriver.ChromeOptions()
AttributeError: module 'selenium.webdriver' has no attribute 'ChromeOptions'

エラーで実行できません。。助けてください

359 :aiueo:2018/04/15(日) 17:08:28.73 ID:xfCmajNI.net
できたー!!エラー治りました!

同じフォルダに入っていた、uu.pyというファイルを消したところ治りました
なぜ消したら治ったのか原因がよくわかりません
uu.pyをフォルダに入れると、またエラーが発生します

作っちゃいけないファイル名などがあるのでしょうか。。

360 :デフォルトの名無しさん:2018/04/15(日) 17:21:04.60 ID:CIuag2/D.net
>>359
ライブラリと同じファイル名使ってるだけ
https://docs.python.org/3/library/uu.html

361 :aiueo:2018/04/15(日) 17:30:47.57 ID:xfCmajNI.net
>>360
ありがとうございます。もともとuu.pyというファイルがあったのですね
適当にaa.py test.py cc.py kkk.pyとか適当ファイルいろいろ作って試してました・・
勉強になりました、ありがとうございます

362 :デフォルトの名無しさん:2018/04/15(日) 17:45:04.14 ID:CIuag2/D.net
>>361
ライブラリ作ってるならこの辺りも見ておいた方がいい
https://docs.python.org/ja/3/py-modindex.html

363 :aiueo:2018/04/15(日) 17:51:34.26 ID:xfCmajNI.net
>>362
プログラミングやったことない超初心者です。
スクレイピングでやりたいことがあるのでpythonインストールしてみました。

ライブラリとファイル名、かち合わないように気を付けます
わざわざありがとうございます!

364 :デフォルトの名無しさん:2018/04/15(日) 18:14:44.88 ID:WdW8h5cl.net
openpyxlを使ってExcelファイルのA2セルの値を取り出そうとしたんだけど
そのセルに書かれている計算式が取り出せました。

計算式ではなく、計算結果を取り出すにはどうしたらよいの?
こう書きました→print(ws['A2'].value)

365 :デフォルトの名無しさん:2018/04/15(日) 18:33:21.95 ID:5wGddKlA.net
>>364
使ったことないけどここら辺の話かな?
http://cloudsquare.jp/hibiki/blog/2018/01/30/openpyxl/

366 :デフォルトの名無しさん:2018/04/15(日) 22:39:51.61 ID:UX4y5Mn1.net
ありがd

367 :デフォルトの名無しさん:2018/04/15(日) 23:29:55.35 ID:9jzNqCls.net
長文になって申し訳ないけど、メソッドに関する質問。

1.Pythonで始めから使えるメソッド(.replace()とか)に呼び名はある?
 ビルトインメソッド?、ビルトイン関数?、メソッド?それとも他の呼び名?

2.help()関数のようにビルトインメソッド(仮)の定義を見ることはできるか?
 print(help(replace))と入力すると
 >>>NameError: name 'replace' is not defined となるため見れない

3.ビルトインメソッド(仮)はなぜ存在しているのか?ビルトイン関数で代替できないのか?
 メソッドがオブジェクト指向版の関数という自分の解釈なら、
 メソッドはライブラリかユーザー定義用だけにしておいて、
 ビルトインオブジェクト(クラス)のメソッドなんて用意するべきではないと思うから。

以上3点です。よろしくお願いします。

368 :デフォルトの名無しさん:2018/04/15(日) 23:32:53.30 ID:xpwShDOv.net
help(str.replace)

369 :デフォルトの名無しさん:2018/04/15(日) 23:42:33.10 ID:9jzNqCls.net
>>368
ほんとだ。ありがとうございます。
メソッドを呼び出す際は、ここでもオブジェクトが必要だったんですね。
そして、print()関数は不要でしたねすみません。

総レス数 992
262 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200