Pythonのお勉強 Part57

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/06/25(月) 09:57:59.24ID:aY7uj4w5
Pythonオフィシャルサイト
http://www.python.org/

■前スレ
Pythonのお勉強 Part56
http://mevius.5ch.net/test/read.cgi/tech/1519430841/

次スレは>>980が挑戦する

ソース貼れるサイト
https://pastebin.com/ ペーストビン
https://ja.osdn.net/pastebin/ OSDNコピペ ログインしないで投稿すると一週間で自動削除
562デフォルトの名無しさん
垢版 |
2018/09/13(木) 23:08:52.06ID:e5Ezbqnp
>>561
ext4でもxfsでも同じ?
563556
垢版 |
2018/09/13(木) 23:09:23.07ID:7EcaHTzm
どのファイルシステムにも、デフラグツールがあるから、

たぶん、すべてのファイルシステムで同じだろ
564デフォルトの名無しさん
垢版 |
2018/09/13(木) 23:10:40.98ID:e5Ezbqnp
>>563
>>561のようなページの並びにするにはどんなwriteシステムコールを出せば確認できる?
565デフォルトの名無しさん
垢版 |
2018/09/13(木) 23:13:26.04ID:6Z3XXp4U
こうゆう見当外れな議論ごっこも時間が経てば良い黒歴史になるもんやからな
566556
垢版 |
2018/09/13(木) 23:15:45.68ID:7EcaHTzm
例えば、1-2-3-4-5-6-7-8 のように、8ページを読み込んだとする

ここで、ページ4を更新したら、ページ4に、更新した印のdirty bit を付ける。
他のページには、dirty bit が付いていないから、更新されていない事がわかる

だから、1-2-3-(9-10)-5-6-7-8 のように、ページの並びだけを変えて、
ページ9, 10以外は、何も変化がない
567556
垢版 |
2018/09/13(木) 23:24:36.66ID:7EcaHTzm
>>564
ページ4を更新する時に、バイト数が増えれば、
1ページだけの更新ではできないから、2ページの更新になる

それで、1-2-3-(9-10)-5-6-7-8 のようになる

だから、ページ10には、1文字しか入っていない事もある

その場合、4KB近く使われていない領域があるけど、
そこに、ページ5〜8 の内容をずらして更新したりしない

ページ1〜3、5〜8 には、dirty bit が付いていないから、更新されない
568デフォルトの名無しさん
垢版 |
2018/09/13(木) 23:27:43.30ID:e5Ezbqnp
>>567
ブロックマップを分かってなさそうだ
あとデフラグって言葉は違う
もっと勉強した方が良い
569デフォルトの名無しさん
垢版 |
2018/09/13(木) 23:54:36.62ID:/6DEARgS
10MB程度と予測できるならメモリー上でやれよ
めんどくさいからリストでさ
んで、100回おきにHDDに書き込む
finallyでHDDに書き込む
570556
垢版 |
2018/09/13(木) 23:59:59.43ID:7EcaHTzm
>>568
ファイルシステムのBlock bitmap は、dirty bit の有無じゃなかったっけ?

ちょっと今、手元に本がないから、わからないけど
2018/09/14(金) 01:54:16.61ID:eqs6pM6Z
ちゅーかディスクへの書き込みで、ディスクへの負担とか考えとったら、あんた禿げるで。
OSや他のアプリはもっと頻繁に読み書きしてるよ。
2018/09/14(金) 02:43:59.26ID:YQ1y2eFS
デフォルトでは、5秒毎にHDD に書き込んでいる設定を、15秒毎にするとか、
SSD では書き込み回数を減らすために、そういう設定にする人もいる

ただし電源断に対する、安全性は落ちる
573デフォルトの名無しさん
垢版 |
2018/09/14(金) 04:24:25.30ID:y006v5WX
質問
パイソンは何で20Mの制約があるの?
有料とかないの?
月々5000円くらいなら払ってやるのに
2018/09/14(金) 04:38:57.92ID:0Re1jVqu
Rubyガイジとハゲガイジやべえ
2018/09/14(金) 04:48:11.44ID:0Re1jVqu
Pythonガイジの諸君も女の腐ったような奴の扱いは上手くないらしいな
544の時点で「ああこいつ共感脳だ。そうだねって言わないといけない奴だ」と気づけ
2018/09/14(金) 07:01:25.26ID:rR71tzT7
他が頻繁に書き込みしてるからよい、って考えは良くないな
主処理に対してログや管理でどの程度リソースを使うかを考えるべき
DL総量100GBに対してログ書き込み量は1%以下に抑える、とかな
2018/09/14(金) 12:28:56.08ID:jZmQsV2I
大容量のリストファイルを頻繁に更新したくないなら
「リストの何番目まで進んだか」って情報だけを別のファイルに保存すればいい
これならDL1件につき数バイトの書き込みしか発生しない

リストをランダムに処理したい場合はリストの処理状況をビットで管理して
ビット情報を別ファイルに保存すればいい
これなら100万件のリストでも125000バイトで管理できる
578デフォルトの名無しさん
垢版 |
2018/09/15(土) 00:24:55.07ID:jV44o+ul
>>510
>>519
juliaでコーディングしちゃいなよ!
速度は速いわ、ユニコードどーんとこいの言語仕様だから
文字リテラルだけでなく、ユーザー定義関数名や変数名に漢字(絵文字)まで使えちゃうんだからさ

function ��()
println("ハロー、ウンコ!")
end

julia> ��()
ハロー、ウンコ!
2018/09/15(土) 09:09:55.60ID:BeLWlE1K
変数名関数名ならpythonも3から2バイト使えるぞ
2018/09/15(土) 11:44:55.49ID:tPiE10DN
テスト関数に日本語使うことはあるけどそれ以外の用途でマルチバイトなんて使いたくもない
581デフォルトの名無しさん
垢版 |
2018/09/15(土) 11:49:05.69ID:AVfR6YnT
既に化けてる
っていうか
コーディングのエントロピーは出来るだけ小さく保ちたいものです
582デフォルトの名無しさん
垢版 |
2018/09/15(土) 17:33:16.66ID:u773lREX
python初心者です。
今seleniumを使おうとしているのですが、http://127.0.0.1:4444/wd/hub
にアクセスできずに困っています。
プロキシは確認しましたが通していません。
どなたか対策が分かる方いらっしゃいますか?
583デフォルトの名無しさん
垢版 |
2018/09/15(土) 17:36:13.52ID:AVfR6YnT
自分で鯖立ててないだけじゃね
584デフォルトの名無しさん
垢版 |
2018/09/15(土) 17:53:08.90ID:u773lREX
サーバーを立てるというのはローカルサーバーの事でしょうか
2018/09/15(土) 17:55:17.27ID:i4j5g7Qc
スレ違い以前の問題だな
どこの板に誘導すりゃいいんだろ
586デフォルトの名無しさん
垢版 |
2018/09/15(土) 18:02:12.37ID:AVfR6YnT
カレントディレクトリに
wd/hub

wd/hub/index.html
を作って

import http.server
import socketserver

with socketserver.TCPServer(('127.0.0.1', 4444), http.server.SimpleHTTPRequestHandler) as httpd:
httpd.serve_forever()

を実行汁
587デフォルトの名無しさん
垢版 |
2018/09/15(土) 19:28:01.07ID:u773lREX
>>586
pythonのファイルなのですが、htmlファイルは何の用途で作成するのでしょうか
588デフォルトの名無しさん
垢版 |
2018/09/15(土) 19:30:23.47ID:u773lREX
ログです

[0913/014841.092:ERROR:process_reader_win.cc(123)] NtOpenThread: {アクセス拒否} プロセスはオブジェクトのアクセスを要求しましたが、アクセス権が与えられていません。 (0xc0000022)
[0913/014841.116:ERROR:exception_snapshot_win.cc(88)] thread ID 6820 not found in process
2018/09/15(土) 19:57:16.93ID:UgmXbThu
その知識だと無理だと思う
2018/09/15(土) 23:07:35.30ID:Uxv/p0LY
Pythonにおいて、ポリコレ議論が白熱していると話題。
奴隷制度を連想させる「master」「slave」という単語を削除が要望されてしまったという。

そもそも「master」という単語は非常に多くの場所で使われており、たとえばバージョン管理システムGitでは「masterブランチ」という概念がある。
そのため、これを変更するのは容易なことではない。また、master/slaveという単語は電子回路やソフトウェアアーキテクチャにおいて奴隷制とはまったく関係ない文脈で使われている。
そして、「slave」を置き換えられる単語で適切かつ広く普及している単語はいまのところ存在しない。
こういった理由から反対の声も出ていたが、最終的には「salve」という単語は「worker」や「helper」に、
「master process」という言葉は「parent process」に置き換えられることになったという。

なお、この議論は非常に白熱したため、Python開発において「優しい終身の独裁者」から離れるとしていたPythonの生みの親であるGuido van Rossum氏が仲裁し、提案された変更を受け入れる決断を下している。

https://developers.srad.jp/story/18/09/14/0935201/


Python終わったな
こんなん1つ認めたらどんどん汚染されていってまともに書けなくなるだろ
591デフォルトの名無しさん
垢版 |
2018/09/15(土) 23:52:43.14ID:Lh54kTnH
>>590
どこからslaveが削除されるっていう話なの?
592デフォルトの名無しさん
垢版 |
2018/09/16(日) 00:28:28.32ID:djAHrjHG
IDEにHDD繋ぐ時もマスター、スレーブと言ってたね
2018/09/16(日) 00:37:43.24ID:JuMgzwQF
>奴隷制度を連想させる「master」「slave」という単語を削除が要望されてしまったという。
こんな要望するやつ絶対プログラミング向いてないだろ
やっぱPython色んなやつに使われてるんだな
594デフォルトの名無しさん
垢版 |
2018/09/16(日) 00:43:22.70ID:SOVIz+sV
ご主人さまと奴隷
特殊なプレイを連想する
2018/09/16(日) 00:44:55.16ID:+eUSJ1U5
【IT】奴隷制を連想させるとして、Pythonで「master」「slave」といった単語が削除される
http://egg.5ch.net/test/read.cgi/bizplus/1536925223/
2018/09/16(日) 00:47:12.15ID:r3x3JD0E
slaveよりworkerやhelper、masterよりparentの方が役割や位置関係が分かりやすいけどね
2018/09/16(日) 00:49:04.82ID:AI9K0Igl
モンティパイソンのブラックさを見習ってほしい
ブラックを笑いに変えないと
2018/09/16(日) 01:05:34.57ID:EK9e0hMh
>>582-588
Ruby では、適当な作業フォルダへ移動してから、コマンドプロンプト・PowerShell で、
ruby -run -e httpd . -p 4444

これで、PC 内に、WEBrick サーバーが起動するから、
その作業フォルダ内に、index.html があれば、

ブラウザでアクセスすれば、そのHTMLページを見れる。
http://localhost:4444/

サーバーを止めるには、Ctrl+C を押す

君は、HTML, CSS, JavaScript を知らないの?
599598
垢版 |
2018/09/16(日) 01:37:04.25ID:EK9e0hMh
Ruby では、適当な作業フォルダに、index.html がある場合、
Selenium::WebDriver で、サーバーを立てずに直接、HTML へアクセスもできる

ローカルPC のファイルには、絶対パス、file:///何々でアクセスできる。
file:///何々/index.html

options = Selenium::WebDriver::Chrome::Options.new
options.add_option(:detach, true) # ブラウザを操作しない
options.add_argument('--start-maximized') # 画面最大

driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.timeouts.implicit_wait = 30 # 要素の検索の timeout

index_url = "file:///" + File.join(__dir__, 'index.html')
driver.navigate.to index_url
2018/09/16(日) 02:15:40.68ID:8SACu1kv
>>590
その要望無視したらどうにかなんの?
2018/09/16(日) 02:57:27.65ID:sL6e6VNO
>>600
もう受け入れちゃったから今更取り消せないでしょ
しかも大きな話題にもなってしまったし
Python終わったな
2018/09/16(日) 08:47:58.72ID:+Pq0rgCm
>>595
ポリコレは便利な集りツール。
2018/09/16(日) 10:06:30.86ID:tx1ttOgr
クラス継承でsuper()についての質問です。

https://pastebin.com/eHYGS1Vq

super()してるのに親クラスの_init_が実行されてないのはなぜでしょうか?
2018/09/16(日) 11:13:32.88ID:SK8tGSq7
久々にpandasをアップデートしたら、日本語のパスもファイル名もそのままでは使えなくなってるんだね
と書こうと思ってたら似たような話題が上にもあった
一気に不便になったわ
2018/09/16(日) 11:18:03.18ID:SK8tGSq7
もしかしてpandasじゃなくてpythonの問題?
つか初心者スレと間違えたのでスルーして下さい
2018/09/16(日) 12:19:00.30ID:l8FAmx6W
>>603
どうしてそうなってるのか知らんけどsuperの第一引数はBを入れないといけないようだ。
607デフォルトの名無しさん
垢版 |
2018/09/16(日) 13:16:15.24ID:HF0YmRsW
裾野が広がると馬鹿も増える
2018/09/16(日) 20:38:44.74ID:Jzzvug2D
>>606
ホントだそれだと思い通りに動きますね、ありがとうございます
この引数はoverrideするクラスじゃなくてされるクラスを入れるのか、そんなの自明なのに謎仕様ですね
2018/09/17(月) 05:14:02.92ID:LR6Kygk+
まずsuperという関数名の意味から考えてみろよ
つか引数はPython3なら省略可だし
610デフォルトの名無しさん
垢版 |
2018/09/17(月) 12:33:21.10ID:ZxEuGzqt
RailsよりDjangoの方がしっくりくるかな...
2018/09/18(火) 07:34:10.91ID:emMxJE89
>>550
だが、ファイル一つで管理できるのは楽だべ
2018/09/19(水) 01:34:09.83ID:LZr6grGn
定数変数関数クラスの名前はキャメル、スネークどっちがよいの?
定数は大文字にするって暗黙のルールがあるみたいだけど、kiyoshi_name(kiyoshiName)をKIYOSHINAMEにすると分かりづらいから論外だと思うんだけどどう?
2018/09/19(水) 02:37:06.77ID:BAgNiBDl
>>612
両方使っちゃう
2018/09/19(水) 02:42:08.26ID:LZr6grGn
>>613
どう使い分けるの?
2018/09/19(水) 03:07:08.46ID:jkkFP0be
>>614
クラス、例外の名前 -> キャメルケース
変数名、関数名 -> スネークケース

PEP8というコーディング規約に書いてあるので読んでみて
2018/09/19(水) 04:04:03.02ID:6Ke1Nn09
ptpyhon3みたいな、分かりやすいUIのPython3インタプリンタでおすすめのはありますか。
ptpython3もいいんですけど 違うものを試してみたいです。
2018/09/19(水) 12:16:23.11ID:j0vZv9bU
>>612
パスを格納した定数は「大文字1文字_」ってルールにしてる
ディレクトリなら D_json
ファイルなら F_setting みたいな感じ
2018/09/19(水) 19:43:40.49ID:aiIpKBDG
>>617
参考までに、パスだけ特別扱いにするのはなぜ?
2018/09/19(水) 20:19:21.85ID:OTedNRC9
パスの話はあくまで一例ということでしょ
他にも、変数の種類別とか、文字列のエンコーディング別とかにも
プレフィックスやサフィックスをつけたりすることはあるよね
2018/09/19(水) 20:47:04.31ID:LZr6grGn
>>615
>>617
サンクス一文字目にプレフィックス付けるのはとっくに滅んでると思ってた
621デフォルトの名無しさん
垢版 |
2018/09/19(水) 20:50:28.24ID:J1A7PsDE
一文字目にプレフィックス付けたらもはや一文字目やないとゆう完全無欠なる矛盾w
622デフォルトの名無しさん
垢版 |
2018/09/19(水) 21:19:07.88ID:aHGhShOW
設定値に"master"、"slave"使ってるアプリは差別者扱いされたりするのかな
2018/09/19(水) 22:17:41.37ID:FRLMP6AI
そういや昔iOSアプリで独島は韓国の領土ですとかなんとか
こっそり書いてある韓国製アプリが見つかってたけど
見えない部分なら酷い奴色々ありそうだよな
2018/09/20(木) 00:24:06.57ID:iQSEA3+z
一文字目以外に付けるプレフィックスを見たことがない
2018/09/20(木) 11:56:12.26ID:HAOX7ffW
masterがMでslaveがSという矛盾
626デフォルトの名無しさん
垢版 |
2018/09/20(木) 12:23:21.32ID:7WHuQIEO
>>623
ファミコンのROMだっけ
627デフォルトの名無しさん
垢版 |
2018/09/20(木) 12:25:58.30ID:7WHuQIEO
>>624
前にくっつくのがプレフィックスで、後ろにくっつくのがサフィックスです。
中間にくっつけるのは何て言うのか知らんけど。
そもそも中間に付けてしまうと元が何だったのかまで判らなくなるからな。
2018/09/20(木) 14:12:18.08ID:2iENFSTM
>>625
はあ?召使いに罵られる方がいいに決まってるだろ
2018/09/20(木) 16:17:33.15ID:T12P3hPI
>>625
英語圏だとSMはサドマゾではなくスレイブとマスターの頭文字と聞いたから矛盾では無いな
630デフォルトの名無しさん
垢版 |
2018/09/20(木) 17:56:05.85ID:gNXIg40P
なら、国外でMicrosoft社をMSなどの略せないのか
631デフォルトの名無しさん
垢版 |
2018/09/20(木) 18:00:21.18ID:X/cZTSMm
MSPythonの悪夢
632デフォルトの名無しさん
垢版 |
2018/09/21(金) 00:06:32.02ID:pqvLKmnN
WindowsでRuby開発は難しいらしいけど、
Pythonも難しいの?ましなほう?
2018/09/21(金) 00:37:40.96ID:3UUW0PhR
公式インストーラーでインストールして仮想環境作ってpipで欲しいライブラリ入れるだけ
windowsでも普通に動く
634デフォルトの名無しさん
垢版 |
2018/09/21(金) 01:33:15.67ID:9xBQcUDg
Windowsならanacondaなのでは
635デフォルトの名無しさん
垢版 |
2018/09/21(金) 07:06:58.13ID:y+ZygFeU
Visual Studioインストールすると付いてくる
2018/09/21(金) 07:07:53.25ID:m+XjGsJo
anacondaのライブラリの9割ぐらいは結局使わないから必要なものだけ入れた環境作った方がいい
2018/09/21(金) 13:13:45.04ID:5XrzjM4h
32G のSSD とかツラいですね!
638デフォルトの名無しさん
垢版 |
2018/09/21(金) 15:59:46.16ID:0sGW7LbN
Dataframe(Series)で、
m f
0 0 0
1 0 0
2 0 0
3 1 1
4 0 1
5 0 1
6 1 2
7 0 2
8 0 2
9 1 3
10 0 3
11 0 3

df['m']があったとして、df['f']を作る方法が分からない。
分かる人教えて下さいm(_ _)m
639こっちが見やすいかな^^;
垢版 |
2018/09/21(金) 16:09:21.00ID:0sGW7LbN
Dataframe(Series)で、
index m f
0 0 0
1 0 0
2 0 0
3 1 1
4 0 1
5 0 1
6 1 2
7 0 2
8 0 2
9 1 3
10 0 3
11 0 3

df['m']があったとして、df['f']を作る方法が分からない。
分かる人教えて下さいm(_ _)m
640デフォルトの名無しさん
垢版 |
2018/09/21(金) 17:06:22.53ID:Y+zsC6wW
>>639
cumsumで累積和が取れる
df[“f”]=df[“m”].cumsum()
641デフォルトの名無しさん
垢版 |
2018/09/21(金) 17:21:03.87ID:0sGW7LbN
>>640
ありがとうございます!
今まで、リストに変換して、for文で足して、
Dataframeにしていたので、
1行ですんで助かります(^ ^)
642デフォルトの名無しさん
垢版 |
2018/09/21(金) 21:26:08.14ID:0sGW7LbN
python のdataframe型の値を、
bokehのCustomJSのcode="""    """)内で、
strinng型にする方法はありますか?

callback = CustomJS(args=dict(source=source), code="""
var dc = source.data;
var aaa = dc['time'][100].toTimeString();
""")

ではうまくいきません。
aaaをstringにしたいのですが。。。
643デフォルトの名無しさん
垢版 |
2018/09/22(土) 13:35:45.41ID:xOVRbYWf
>>636
ほんそれ
644デフォルトの名無しさん
垢版 |
2018/09/22(土) 13:37:58.85ID:xOVRbYWf
callback = CustomJS(args=dict(source=source), code=f"""
var dc = source.data;
var aaa = "{dc['time'][100].toTimeString()}";
""")
2018/09/22(土) 18:21:30.87ID:kxpMytAb
関係ないけどbokehって言葉、日本語のボケ(写真のボケ)から来てるんだよな
なぜか英語でも使われるようになった。そのうち5ch用語も英語になったりして
2018/09/22(土) 18:51:13.64ID:c//Edh7F
つ pedobear
(どこかで間違った例)
2018/09/22(土) 19:13:35.99ID:kxpMytAb
あーそっか、クマーね
648642
垢版 |
2018/09/22(土) 19:20:13.84ID:AGvc1ug8
>>644
うまくいきません(泣)
649デフォルトの名無しさん
垢版 |
2018/09/22(土) 22:01:16.41ID:NU3AjVzo
python on rails まだ?
2018/09/23(日) 04:17:15.27ID:Dlc37gvN
Windowsでテキストファイルの末尾をちょっと確認したくて
LinuxのtailコマンドのようなものをPythonで作ろうと思い立ち
以下のロジックで組みました
・すべての行をリストに取り込む
・len()でリストの要素数を把握し、添え字で末尾から指定分の要素を参照して表示

しかしこれだとファイルが巨大な場合、HDDが長時間ガリガリ言って使い物になりません
メモリを食いつぶさない良い方法があれば教えてください
2018/09/23(日) 05:09:58.45ID:Q3ubKv7d
>>650
f.seek(-10, 2)でファイル末尾から10バイト目に移動して f.read(1) とかする。f はファイルオブジェクト
652デフォルトの名無しさん
垢版 |
2018/09/23(日) 05:38:06.43ID:s92HkKLC
>>650
俺はpythonわかんないのでpythonでの書き方がどうなるかはわからないが、要するに最後の10行とかが最終的にバッファにあれば良いだけだよね。ならばその行数だけのバッファがあれば良い。
一行読んでバッファに入れてというのの繰り返しになるが、バッファに既に限界まで入っているなら最初の行を捨ててからバッファに入れる。という風に作っておいて、全行読み切ったら最後にバッファの内容を全て出力すると。
2018/09/23(日) 06:50:30.15ID:03hgUEHk
ファイルの一括読み込みではなくて、動画みたいに、Stream で読み込めないのか?
例えば1行ずつとか、バッファサイズ分だけ読み込んで、処理したら、即捨てるやり方。
つまり、今処理している部分しか、メモリに置いていないやり方

一括読み込みでは、ファイル全体がメモリ中にあるから、大きいファイルの場合に困る
2018/09/23(日) 07:12:59.20ID:0t7nPFgm
>>653>>652
2018/09/23(日) 07:49:15.42ID:DRJDPnqn
653→652→651
2018/09/23(日) 08:25:58.48ID:Q3ubKv7d
何でシーケンシャルアクセス(ファイルの先頭からアクセスすること)が前提になってるの?この場合は末尾ってわかってるんだからseekでランダムアクセス(任意の位置からアクセス)すればいいと思うけど。
2018/09/23(日) 09:24:50.44ID:0t7nPFgm
テキストファイルの最後の10バイトじゃなくて最後の10行を見たいからじゃね
2018/09/23(日) 09:57:58.34ID:A0stA7Ax
末尾4kb読み込んで後ろから解析、10行分に満たなければさらに手前の4kbを読み込んで、とやっていけばいいのかも。
659デフォルトの名無しさん
垢版 |
2018/09/23(日) 11:39:33.61ID:x0iYh9VU
seekで下からアクセスするとして
結局改行が見つからずにファイル冒頭まで読むハメに
2018/09/23(日) 13:16:33.94ID:s92HkKLC
>>659
間違えてバイナリファイルを開いちゃうと起こり得る事だな。
テキストファイルでも改行が LF ではないとかの理由で起こる事はあるが。
661デフォルトの名無しさん
垢版 |
2018/09/23(日) 15:03:53.47ID:0vXeudiz
だからなんやねんw
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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