[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 04/25 07:49 / Filesize : 245 KB / Number-of Response : 1024
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sageteoff [2015/11/15(日) 15:26:08.75 ID:r8bNQIop.net]
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

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

前スレ
くだすれPython(超初心者用) その27
peace.2ch.net/test/read.cgi/tech/1441317912/

関連スレ
Pythonのお勉強 Part51
peace.2ch.net/test/read.cgi/tech/1443700103/

◆関連リンク Python の Home Page
ttp://www.python.org/

◆長いコードはこういうところにはってください
ttp://ideone.com/
ttp://codepad.org/
ttp://pastebin.com/
ttp://dpaste.com/

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

465 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 13:33:02.59 ID:JJlxJ852.net]
ないぜ(・∀・)ニヤニヤ
欲しけりゃママのおっぱいでも吸ってな

466 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 13:42:55.40 ID:zB17Wept.net]
チュートリアル読めばpythonでのやり方が書いてある
そのくらい読めよカス

467 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 17:19:12.42 ID:omdbAtLE.net]
久々Pythonして、import feedparserをしたら「ImportError: No module named feedparser」が出た
入ってるはずなのにおかしいと思ってrootになって同じようにimportしたら普通に読み込めた

パーミッションは、
$ ll /usr/lib/python2.6/
drwxr-xr-x. 41 root root 4096 12月 28 16:49 2015 site-packages

$ ll /usr/lib/python2.6/site-packages/ | grep feedparser
drwx--x--x. 3 root root 4096 12月 28 16:49 2015 feedparser-5.2.1-py2.6.egg

755に変えてもダメなんだけど、どうすればいいんかな?

それと、皆はこのsite-packagesなどのパーミッションはどうしてる?

468 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 18:11:47.45 ID:JJlxJ852.net]
read権限で十分だと思うが、実際にどこを探すかはimportした瞬間のsys.path次第

469 名前:デフォルトの名無しさん [2015/12/28(月) 18:27:38.14 ID:Y4DeX8w+.net]
さすがに 711 はだめなんじゃね

470 名前:デフォルトの名無しさん [2015/12/28(月) 18:55:14.16 ID:Bcq1wNMf.net]
feedparserってこれのこと?
https://pypi.python.org/pypi/feedparser/5.2.1

471 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 20:48:05.95 ID:omdbAtLE.net]
>>458
>>> sys.path
['', '/usr/lib64/python26.zip', '/usr/lib64/python2.6', '/usr/lib64/python2.6/plat-linux2',
'/usr/lib64/python2.6/lib-tk', '/usr/lib64/python2.6/lib-old', '/usr/lib64/python2.6/lib-dynload',
'/usr/lib64/python2.6/site-packages', '/usr/lib64/python2.6/site-packages/gst-0.10', '/usr/lib64/python2.6/site-packages/gtk-2.0',
'/usr/lib64/python2.6/site-packages/webkit-1.0', '/usr/lib/python2.6/site-packages', '/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg-info']

一応、/usr/lib/python2.6/site-packagesは読み込んでるはずなんだけど
/usr/lib64/python2.6/site-packagesの中にはfeedparserは存在しない


>>459
$ ls /usr/lib/python2.6/site-packages/ | grep feedparser
drwxr-xr-x. 3 root root 4096 12月 28 16:49 2015 feedparser-5.2.1-py2.6.egg

$ ls /usr/lib/python2.6/site-packages/feedparser-5.2.1-py2.6.egg/
drwx--x--x. 2 root root 4096 12月 28 16:49 2015 EGG-INFO
-rwxr-xr-x. 1 root root 160056 12月 28 16:49 2015 feedparser.py
-rw-------. 1 root root 146465 12月 28 16:49 2015 feedparser.pyc

755でもダメなんだよね
egg内は上記の通りだけど


>>460
そうだと思う
俺もいつ入れたか覚えてないんだけど、他の外部モジュールでなんか使ってるようで

472 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 21:33:13.86 ID:DWhsauMG.net]
>>461
> -rw-------. 1 root root 146465 12月 28 16:49 2015 feedparser.pyc

755 になってないじゃん…

473 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 21:37:16.93 ID:omdbAtLE.net]
>>462
いやぁ、それ755にしてみたけどダメだった...



474 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 21:39:02.55 ID:JJlxJ852.net]
あー、pycのパーミッションか

475 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 22:18:24.30 ID:omdbAtLE.net]
仕方がないので
sys.path.append('/usr/lib/python2.6/site-packages/feedparser-5.2.1-py2.6.egg')
としたらimport通った
でもsys.path.append()とかしたくないんだよね
こういう場合はどこが悪いん?
改善方法教えてもらえたらありがたいんだけど

476 名前:デフォルトの名無しさん [2015/12/29(火) 07:57:18.81 ID:uJ7begDl.net]
まず、
$ which -a python2.7
で、どこのpython2.7を使っているか確認。
$ python2.7 -c 'import sys;print(sys.path)'
$ ls /usr/local/lib/python2.7/dist-packages
$ cat /usr/local/lib/python2.7/dist-packages/easy-install.pth
import sys; sys.__plen = len(sys.path)
./a.egg
./b.egg
/usr/lib/python2.7/dist-packages

まで調べて、.eggを自動的にimportするようになってるのか。
と思いましたが、一つ一つ自分で調べてみては?

問題がなく、意図したpathのpython2.7を使っているのなら、
~/.pythonstartup
に、
sys.path.append('/usr/lib/python2.7/site-packages/feedparser-5.2.1-py2.6.egg')
を書き加える。

477 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 09:27:21.39 ID:3yCw/m4m.net]
>>466
ありがと

まず環境として、centOS6のデフォルトのPython使ってる
で、feedparser他ライブラリは基本pip installから行なってる

で、
$ sudo cat /usr/lib/python2.6//site-packages/easy-install.pth
import sys; sys.__plen = len(sys.path)
./pip-1.5.6-py2.6.egg
./pydelicious-0.6-py2.6.egg
./feedparser-5.2.1-py2.6.egg
import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)

easy-install.pthはrootじゃないと権限なく読めなかったけれど、feedparserは書かれているので読みこむようになってるのかなと
上記の内容良く分かんないけれど

478 名前:デフォルトの名無しさん [2015/12/29(火) 09:43:57.99 ID:uJ7begDl.net]
sudoしたくないんでしょ?
だったら、
$ cat /usr/lib/python2.6/site-packages/easy-install.pth
じゃないと。↑できないんだから、permissionの問題を
解決する必要があるね。
cat 出来るようになれば解決する問題のようだけどなぁ。

あと、↓を実行できるかも確かめたら?
$ cat /usr/lib/python2.6/site-packages/feedparser-5.2.1-py2.6.egg
↑できるんであれば、python2.6からimportできないのは別の問題になるけども。

479 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 10:04:37.52 ID:tu4wvDsf.net]
pythonの問題じゃないな
初歩的な問題
ここで答えてもいいがlinuxのくだ質で聞いてこい

480 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 10:13:37.98 ID:3yCw/m4m.net]
>>468
でも同じようにpip installしたMySQLdbなんかは普通にimport出来るんだよね
cat /usr/lib/python2.6/site-packages/easy-install.pthはパーミッションのせいで読めないままで

cat /usr/lib/python2.6/site-packages/feedparser-5.2.1-py2.6.egg/feedparser.pyはrootじゃなくても読み込める


>>469
元々はsudo pip installした場合の皆の設定のやり方を知りたくて
今はlinuxのパーミッションの話になってきてしまったけれど...
ま、linux板に聞きに行ってくる

481 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 10:16:15.16 ID:S7hPg+te.net]
なんか可哀想な奴がいるな。
2つの意味でw

482 名前:デフォルトの名無しさん [2015/12/29(火) 12:56:28.91 ID:X5GhveT8.net]
>>454
テンプレート文字列、名前付きテンプレート文字列、formatメソッドを使う

483 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 15:20:27.64 ID:qoFlpoo3.net]
windows7 64bit python2.7です
make.bcde.jp/category/33/のサンプルプログラムをテキストエディタでコピペして実行したのですがImportError: No module named htmlとエラーが出てしまいます
どうすればいいでしょうか?



484 名前:デフォルトの名無しさん [2015/12/29(火) 15:24:41.93 ID:f6XlG/an.net]
とりあえずモジュールを入れてみようか

485 名前:デフォルトの名無しさん [2015/12/29(火) 15:43:10.61 ID:O/+FVQhq.net]
>>465
頭が悪い

自分勝手な思い込みを排除しろ

>>467
/usr/lib64/python2.6/

486 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 18:44:07.94 ID:qoFlpoo3.net]
>>474
pythonのコマンドラインでimport lxml.htmlを打ち込むとエラーが出ないのでlxmlのインストールはできていると思います
しかしコマンドプロンプトからプログラムを実行する時にimport lxml.htmlの部分でエラーが出てしまうようなんです

487 名前:デフォルトの名無しさん [2015/12/29(火) 19:19:01.36 ID:Gn86aS5m.net]
シバンで変な場所指定してない?

488 名前:デフォルトの名無しさん [2015/12/29(火) 19:37:24.23 ID:Gn86aS5m.net]
それか、pythonに変なalias設定してるとか

489 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 23:43:56.01 ID:Kwx+9ABw.net]
>>476
サンプルプログラムはimport lxml.htmlってなってるのに
なんでエラーメッセージはImportError: No module named htmlなの?
エラーメッセージ出るとしたらNo module named lxmlか
No module named lxml.htmlのどっちかだと思うんだけど
import htmlってしてない?

490 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 23:55:53.20 ID:Kwx+9ABw.net]
>>473
ごめん2.7だったか >>479は忘れて
じゃlxmlてフォルダがあるディレクトリから実行してるとか

491 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 00:27:50.04 ID:uyuyJzYk.net]
>>480
ディレクトリにlxmlという名前のついたファイルがあったので別のディレクトリに移動させてから実行したら問題なく動きました
ありがとうございました

492 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 10:55:34.27 ID:W5tI99Nr.net]
pythonディス
lingr.com/room/vim/archives/2015/12/29#message-22886194

493 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 12:59:52.00 ID:Jq3rckJ5.net]
何かと思ったらvimlingerの田舎者かよ
一日中冬休みの課題のvimscript書いてろクソカス



494 名前:デフォルトの名無しさん [2015/12/30(水) 19:06:49.42 ID:QhvBZrTC.net]
教えてください
sympy geometryで点集合Pと円の交点を求めたいのですがうまくいきません。
Pを線分;sg.Segment(sg.Point(P(X),P(Y)), sg.Point(P(X+1),P(Y+1))) として
円との交点をintersectionにてforで回せば行けるかと思いましたが
2次元のポイントしかサポートしてないよと怒られます。
交点を求める何かよい方法はないでしょうか?

495 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 19:57:45.77 ID:ASJfSghX.net]
あなたに足りない内容

・コピペして確認できるコード
・sympyのバージョン

496 名前:デフォルトの名無しさん [2015/12/30(水) 21:37:31.57 ID:QhvBZrTC.net]
sympy 0.7.6-6
簡単に書くと以下です
import numpy as np
import sympy geometry as sg

X = np.array([-5, -3, -1, 0, 1.5, 2, 4])
Y = np.array([1, 4, 6, 10, 7, 5, 2])
center = sg.Point(0,0)
radius = 3
circle = sg.Circle(center, radius)
for i range(0, len(X)-2)
segment = sg.Segment(sg.Point(X[i: i+1], Y[i:i+1]),
sg.Point(X[i+1: i+2], Y[i+1:i+2]) )
result = sg.intersection(circle, segment)

ちなみにX、Yはlistやdfなど型を変えてもダメでした

497 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 22:41:14.61 ID:HxMCzWTB.net]
X[i]って書き方じゃダメなん?

498 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 22:42:57.79 ID:ZdT1nXrn.net]
初心者以前なのですが・・・
プログラムに興味がわいたので勉強してみたいと思っています
Pythonが初心者向きだと見たのですが初心者でも分かるように解説されてるサイトってありませんか?
バージョンも色々あるようで困惑しています

499 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 22:47:05.00 ID:Q+ZAoAOe.net]
初心者向きかどうかより
目的に合わせて言語を選ぶことを薦めますなあ

500 名前:デフォルトの名無しさん [2015/12/30(水) 23:18:41.00 ID:QhvBZrTC.net]
>>487
く、kwskお願いします

501 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 23:59:47.08 ID:ZdT1nXrn.net]
>>489
目的は正直今はありません
とりあえず自分で考えたものを自分で作れるスキルが欲しいという感じでまだ具体的なものは決まってません
プログラムがどんな物か体験してある程度理解できればと考えています

502 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 01:19:08.08 ID:bhirhwXi.net]
ここがいいとサイトは紹介できないけど、今は3.5が最新バージョンだから
2.7より前のバージョンを使って説明しているサイトはもう内容が古いと言っておく

503 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 01:31:42.70 ID:WAuc0YK/.net]
公式のチュートリアルでもやってみれば?
3系も日本語訳されてるだろうし



504 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 05:35:10.12 ID:VHsnBJ1x.net]
一冊本買ったほうが良いんじゃね
効率と失う時間を考えたら本代くらいねぇ

505 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 06:34:54.34 ID:EUZydMuq.net]
>>486
>segment = sg.Segment(sg.Point(X[i: i+1], Y[i:i+1]),
>sg.Point(X[i+1: i+2], Y[i+1:i+2]) )

>X[i: i+1]
:

506 名前: は範囲演算子。i=0なら、X[0〜1]という意味だから、以下の意味になる

segment = sg.Segment(sg.Point(X[0〜1], Y[0〜1]),
sg.Point(X[1〜2], Y[1〜2]) )

Pointに、範囲なんて渡せるかね?

1行ずつデバッグして、エラーメッセージも書くこと。
それか、あちこちにprint関数を書いて、オブジェクトの内容を見る
[]
[ここ壊れてます]

507 名前:デフォルトの名無しさん [2015/12/31(木) 09:04:27.45 ID:J1JAnlWX.net]
>>495
ありがとうございます
デバッグしながらやってみます

508 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 10:25:58.11 ID:KKAqg1l1.net]
>>491
confreaks.tv/videos/elixirconf2014-introduction-to-elixir-for-rubyists

509 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 10:36:41.84 ID:GIuZkMXN.net]
オライリーの入門python3でも買えば良いかな。

510 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 18:24:35.46 ID:qDLLgSp5.net]
サイバーセキュリティ方面に進みたいからPythonを選んだ
図書館に入門Python3が入荷してたから借りてきてるんだけどMacでも環境構築は普通に出来るよね?

511 名前:デフォルトの名無しさん [2015/12/31(木) 18:45:56.57 ID:qrFs5ku+.net]
はい。

512 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 22:12:57.18 ID:WAuc0YK/.net]
>>499
macに標準ではいっているPythonは2系だから注意

513 名前:デフォルトの名無しさん [2016/01/01(金) 00:20:21.25 ID:bne/WG3d.net]
>>1
RPGツクール2000 , RPGツクールMV https://tkool.jp/mv/ ( JavaScript 採用 )

WOLF RPGエディター www.silversecond.com/WolfRPGEditor/

デュエル・マスターズ Android版 ,i-OS版、公式 dm.takaratomy.co.jp/extra/dmapp/entrygate_ds/
デュエル・マスターズ対戦CGI ex
https://web.archive.org/web/20150809154946/www53.atwiki.jp/dmsuishinparty/pages/314.html

デュエル・マスターズ(デュエマ)DM ONLINE 1.8a  /  VanGuard ONLINE 1.5a
https://web.archive.org/web/20150809160254/uhyohyohyo.sak ura.ne.jp/hsp.html

ヴァンガード専用ネット対戦ツール【 VanGuard Online 】
https://web.archive.org/web/20150809155032/kiimaa.jugem.jp/?eid=61

「カードファイト!!ヴァンガード」のネット対戦ができる公式オンラインゲーム「Cardfight!! Online」 2015年冬スタート
https://web.archive.org/web/20150809153724/supersolenoid.blog63.fc2.com/blog-entry-6886.html

遊戯王 Automatic Dueling System
https://web.archive.org/web/20150809164855/www3.atwiki.jp/ads-wiki/pages/20.html

遊戯王 デュエル・オンライン
https://web.archive.org/web/20150809171527/www31.atwiki.jp/vipdo/pages/15.html
https://web.archive.org/web/20140628005202/do.yugioh-portal.net/

ウィクロス( WIXOSS ) WEBXOSS webxoss.com/about_en.html webxoss.com/DeckEditor/

BG(ボードゲーム)Engine https://web.archive.org/web/20151209080842/https://bgengine.net/
https://web.archive.org/web/20151209172205/14owl.hateblo.jp/entry/2015/12/09/011234

アプレンティス  マジック:ザ・ギャザリング(MtG)オンライン化 homepage1.nifty.com/Q_Q/ap.html
https://web.archive.org/web/20151202202725/homepage1.nifty.com/Q_Q/ap.html



514 名前:デフォルトの名無しさん [2016/01/01(金) 00:21:33.61 ID:bne/WG3d.net]
【 オンラインTCGエディター 】   >>1,>>502

デュエル・マスターズ的な非電源TCGの 《 オンライン化ツクール系ソフト 》 制作の企画。

例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持っておりながら、
当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを
ブロック構造の組み合わせで後付け挿入できるように予めシステム化してあるソフト(エディター)。
既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。
デュエマ、ヴァンガ、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、旧ガンダム・ウォー、ライブオン、ディメンション・ゼロ、シャーマン・キング、カードヒーローなど
のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書け。
マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストしろ。
個vs個、多数乱戦、チームvsチーム、個vsチームを実現し、P2P通信対戦プラグイン有り。

設計思想は 《 RPGツクール 》 が良いかな?  他に、優れたエディター有ったら挙げてみろ。

個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。

エディター群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。

遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。
バトスピ、ヴァンガ、デュエマなど発売済みゲームソフトが存在してるTCGはベンダーに研究させる。

各社TCGを再現するテストプレイ ⇒ 更に改良や修正 + コード記述の仕様書(設計書)を作成。

機能制限した下位版を制作しても原則として発売せず + 上位版デュエリ−グ用でサーバー稼動。

下位版を仮に発売した場合の改造および商用利用には、別途で当社との契約が必要。

さ〜て、インド人ベンダーと日本人の翻訳担当SEを見つけよっと!ww
wc2014.2ch.net/test/read.cgi/entrance2/1451262577/-16

515 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 10:21:53.98 ID:HLOoEhqM.net]
from time import sleep
with open('a.txt', 'r') as f:
 print(f.read())
 f.seek(0)
 sleep(5)
 print(f.read())

sleepしてる間にファイルを削除しても
2回目のprintで内容が表示できるのは何故ですか?

516 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 10:43:18.84 ID:NO+H6ZMg.net]
>>504
オープンされてるファイルの実体はクローズされるまで削除されないOSがあるから

517 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 10:49:03.83 ID:XgpMEu+t.net]
メモリにのってるからじゃなくて?

518 名前:デフォルトの名無しさん [2016/01/01(金) 11:58:37.51 ID:7cWASnpe.net]
>>504
環境によりますので、的確な回答を欲しければ、
以下の実行結果を貼り付けて下さいな。
$ python3 -c "import sys;print(sys.platform, sys.version)"
linux 3.4.3 (default, Oct 14 2015, 20:28:29)
[GCC 4.8.4]

519 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 12:04:03.35 ID:LUOZYrnw.net]
>>506は無視して良いです

520 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 15:51:23.54 ID:5KWVOGWz.net]
Windowsだとどうなるの?

521 名前:デフォルトの名無しさん [2016/01/01(金) 19:45:34.10 ID:RO/YvQE1.net]
大抵のosはファイルディスクリプタが存在しているうちは削除されないだろ

522 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 03:40:37.52 ID:onI2UJFj.net]
fは完全にメモリに

523 名前:読み込んでると思ったけど違うのか…
あんまりファイル扱わないからイマイチよくわかってないわ
[]
[ここ壊れてます]



524 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 04:14:55.55 ID:hjX3lexE.net]
fはHDDのここにファイルがありますよって言ってる目印みたいなもん

525 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 07:28:33.43 ID:B+tUCmqX.net]
誰かが、書き込みで開いているファイルは、
ロックされているから、共有モードでも開けないはず

共有モードで開けるのは、誰かが読み込みのみで、
開いたファイルを、他者が読み込みのみで開けるだけ

誰かが書き込んでいるファイルを、
削除できたというのは、何かの間違いだろう

526 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 10:52:26.33 ID:nyi3fL1v.net]
読み込みの話だから読み込みで試してみたけど
ロックされてなければ削除できて当たり前だしメモリ上に読み込んでるんだからデータを出力できて当たり前

from time import sleep
from os import unlink

filename = 'a.txt'
with open(filename, 'r') as f:
_unlink(filename)
_sleep(1)
_print(f.read())
_f.seek(0)
_print(f.read())

527 名前:デフォルトの名無しさん [2016/01/03(日) 18:30:38.58 ID:8LluJexJ.net]
def hello():
  # メインスレッドで実行したい関数
  print "hello, world"

def handler():
  # タイマーハンドラー関数
  hello()

# 10秒後に handler() を実行する
threading.Timer(10, handler)


タイマーハンドラー関数によってhello()がサブスレッド上で実行されちゃうのですが
メインスレッド上で実行させるにはどうすればいいでしょう???

528 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 18:50:27.90 ID:NsMythuW.net]
タイマーハンドラではフラグを立てるだけにしておいて
メインスレッドでフラグを逐一チェックして、フラグが立ったら必要な処理をすればいい

Python2ってこんなこともできなくて、不憫

529 名前:デフォルトの名無しさん [2016/01/03(日) 18:57:13.00 ID:huNGud9V.net]
>>516
やはり、、そうなんでしょうか?
上記のhandler関数から呼び出す方法を期待してたんですが無いんでしょうか?
ちなみにPython3ならあるんでしょうか?

530 名前:デフォルトの名無しさん [2016/01/03(日) 19:05:20.57 ID:SszT0QKN.net]
>>515
hello()

だけど?
そんな事聞きたいんじゃないでしょ。
handlerを使いたくなった状況を教えてよ。

531 名前:デフォルトの名無しさん [2016/01/03(日) 20:25:01.98 ID:8LluJexJ.net]
>>518
なるべく簡単に説明すると
あるリストへ不定期にデータを追加していって10個たまったら
HTTPで外部サーバへまとめてPOSTするプログラム(デーモン)を作ってます。

いつ10個たまるかわからないので
リストにappend()して1秒経過したらそれまで止まったデータをPOSTするようにしたいです。
そのトリガーをthreading.Timer()で実現できるだろうと思ってやってます

532 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 20:39:13.57 ID:0ubEJ4Ba.net]
threadingモジュールは、マルチスレッド用

自分自身のスレッドを呼び出すのは、
10秒sleepすればよいだけ

sleepする際、起こす・起こされるスレッドを、常に意識する

533 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 20:49:06.77 ID:0ubEJ4Ba.net]
JavaScriptで、関数の引数として関数を渡す(コールバック)

1秒後にalert
setTimeout(function(){alert(1)}, 1000);

クロージャを使う、書き方かい?



534 名前:デフォルトの名無しさん [2016/01/03(日) 21:16:05.90 ID:SszT0QKN.net]
>>519
それくらいなら、threadを別に作って、
def run():
 while True:
  req.post(L)
  time.sleep(1)
  if to_end:
   break
でいいんじゃあ?
↑をmainで実行し続けても良いと思うけど。
class 用意しないといけないから、面倒か。

535 名前:デフォルトの名無しさん [2016/01/03(日) 22:18:55.76 ID:8LluJexJ.net]
def handler(signum, frame):
  # メインスレッド上で hello()関数を実行する
  hello()

import signal
# シグナル SIGALRM を受信したら handler関数を実行する
signal.signal(signal.SIGALRM, handler)
# 10秒後に シグナル SIGALRM を送ってもらうようにタイマーをセットする
signal.setitimer(signal.ITIMER_REAL, 10)

その後いろいろ調べて上記で実現できました!!!
ありがとうございました!!

536 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 23:08:12.24 ID:DYf+OrAb.net]
二次元リストa[2][3]に値があるか調べる方法を教えてください

if len(a) > 2:
__if len(a[0]) > 4:
____print(True)
__else:
____print(False)

はちょっと長いです

537 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 23:15:53.18 ID:IQm7jbVy.net]
try:
 a[2][3]
except IndexError:
 print(False)
else:
 print(True)

538 名前:デフォルトの名無しさん [2016/01/03(日) 23:52:42.22 ID:SszT0QKN.net]
>>524-525
和んだ

539 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 00:06:00.61 ID:s2Af4VzW.net]
tryは最終手段だと思ってるんですが他に方法はありませんか?

540 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 00:21:41.72 ID:BRyzgrnr.net]
if (len(a) > 2 and len(a[2]) > 3)
じゃシンプルじゃないのか?

541 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 00:29:08.30 ID:RAsXEDVI.net]
a[2][3]に値がある場合がほとんどなら>>525の書き方が意味にあってる
a[2][3]に値がない場合が多いならif文のほうがいい

542 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 00:40:58.68 ID:UrEM8qI9.net]
if len(a[2:3][3:4]):
____print('我ながら馬鹿げている')

543 名前:デフォルトの名無しさん [2016/01/04(月) 02:36:33.02 ID:lELbBk3M.net]
>>519
queueを使いなさい



544 名前:デフォルトの名無しさん [2016/01/04(月) 19:02:15.23 ID:uh/Y4MEw.net]
>>515
join

545 名前:デフォルトの名無しさん [2016/01/04(月) 19:03:05.25 ID:uh/Y4MEw.net]
>>527
PythonはCやJavaとちがってtryを積極的に使っても問題ないとかだれか言ってた

546 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 19:40:01.45 ID:UrEM8qI9.net]
C++やJavaほど例外スロー時のコストがでかくないからね
その辺はStopIterationが許容できていることからも分かる

ただ積極的に使うかどうかは微妙
コードのニュアンスを伝えるのに適切ならいいと思いますけどお

547 名前:デフォルトの名無しさん mailto:sage [2016/01/05(火) 06:55:55.91 ID:lUvBrLqP.net]
>>311-314
すげー亀レスだけど
LL = [['Japan','apple'],['Korea','orange'],['China',3],['apple',1],[2,'Korea'],['lemon',3],['a','b'],['b','d'],['d','c']]
for i, L1 in enumerate(LL[:-1]):
  for L2 in LL[i+1:]:
    if L2 and any(map(lambda x: x in L2, L1)):
      L1[:] = set(L1) | set(L2)
      L2.clear()
LL[:] = filter(None, LL)
print(

548 名前:デフォルトの名無しさん [2016/01/05(火) 19:26:21.19 ID:2hXOWLBa.net]
>>534
>>525の書き方だと適切なtryの使い方じゃないように思える。
tryブロックの中にa[2][3]に対する処理が簡潔に収まるならpythonとして分かりやすい書き方になると思う。
a[2][3]が存在した場合になにをしたいかによるね。
例えば、a[x][y]が存在するかどうかを判定したいだけの関数ならifとlenを使い、存在する場合はその要素を存在しない場合はfalseを返す関数ならtryを使うかな。

549 名前:デフォルトの名無しさん [2016/01/06(水) 01:36:58.84 ID:NeF0se+2.net]
配列の範囲外を取得しようとしたらNoneでも返してくれればコードを簡単に出来るのになと思うことが多々ある

550 名前:デフォルトの名無しさん mailto:sage [2016/01/06(水) 02:50:10.36 ID:TI60mKwS.net]
思うだけにしとけ
エラーをよしなにしてくれる機能ってのは加減がすごく難しい
一度依存すれば取り除くのも難しい

PHPみたいになってもいいなら止めないけど

551 名前:デフォルトの名無しさん [2016/01/06(水) 09:39:31.66 ID:NeF0se+2.net]
rubyの動きを望んだだけでこの扱いである

まあ、正論だとは思う

552 名前:デフォルトの名無しさん [2016/01/06(水) 17:19:30.30 ID:VveQPPx+.net]
rubyの動きがいいならrubyやった方が(ry

553 名前:デフォルトの名無しさん mailto:sage [2016/01/06(水) 17:38:37.10 ID:3taoJABm.net]
PEP505でNoneとよろしくやる演算子が提案されてるから
将来は>>537も可能になるかもね



554 名前:デフォルトの名無しさん mailto:sage [2016/01/06(水) 19:24:54.42 ID:wVWJvRpl.net]
数値を期待して0が良いとか文字列を期待して””が良いとかになるのでは。

555 名前:デフォルトの名無しさん [2016/01/06(水) 20:00:04.76 ID:dKGWEjRg.net]
>>537
例外を返してくれるんだから十分

556 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 09:13:38.76 ID:fy/kQKWz.net]
やっぱり例外をポンポン使うのかきもい

557 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 09:32:42.26 ID:nXbcU6mx.net]
今回の件はlen使うのが適当に決まってんのに
超初心者特有のスマート脳がくどいとか言い出したから
例外が提案されただけで
違う方法があるなら別に無理に使えとは言わんわ

558 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 12:49:20.99 ID:biQK77Bo.net]
多々あるんならクラス作ったらいいんじゃないの

559 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 13:42:49.81 ID:fsy/sVDL.net]
もう関数でいいじゃん
func = lambda a, x, y: a[x][y] if len(a)>x and len(a[x])>y else None
r = func(a, 2, 3)

560 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 15:03:47.76 ID:XOpkkkUz.net]
間違いがあっても適当に動いてるふりして動き続けるプログラムより
即座に例外で落ちた方が親切
という思想で作られてるのがPython
逆を行くのがRubyPerlPHP

561 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 15:34:48.40 ID:iIS3+qD+.net]
>>548
例外はPython以外に無いと思ってるんですね。
馬鹿じゃないかな?

562 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 15:51:36.76 ID:8k4BpzA1.net]
もう全部try〜exceptの中にまるごとつめこめよ

563 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 16:38:21.50 ID:Pe5rEwkw.net]
そうやって全部の例外を握りつぶす馬鹿がいたなー



564 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 21:26:59.97 ID:AvUDPpyf.net]
例外を握り潰すって言われるとC#スレ思い出す

565 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 00:14:57.20 ID:D7YeVJJQ.net]
僕のpythonは握りつぶさないように握ってください






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<245KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef