- 1 名前:デフォルトの名無しさん mailto:sage [2013/08/06(火) 07:49:28.21 ]
- このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。 騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。 次スレは >>985 辺りで 前スレ くだすれPython(超初心者用) その17 toro.2ch.net/test/read.cgi/tech/1365323116/ 関連スレ Pythonのお勉強 Part48 toro.2ch.net/test/read.cgi/tech/1358750040/ 【実験台】 Python 3.0 のお勉強 Part 1 【非互換】 toro.2ch.net/test/read.cgi/tech/1235050215/ ◆関連リンク Python の Home Page ttp://www.python.org/
- 20 名前:6 mailto:sage [2013/08/07(水) 18:01:16.82 ]
- >>16
有難うございます。 printしてみたらjava_cmdもenv=os.environも値は取れていました。 やり方は指示頂いたので、ちょっとこれからは一人でやってみます。 良い機会なのでデバッグしながらpythonと格闘してみます。
- 21 名前:デフォルトの名無しさん mailto:sage [2013/08/07(水) 18:33:37.76 ]
- >>20
その取れた値を貼ってくれ 自己完結されてそのまま引っこまれたら似たようなトラブルに遭った人の助けにならない
- 22 名前:デフォルトの名無しさん mailto:sage [2013/08/07(水) 22:34:21.93 ]
- 自作したクラスのインスタンス変数にアクセスするのに、面倒だからアクセサは一切作らないで使っていましたが、あるインスタンス変数だけは加工をして代入と取り出しをしたい。
でもアクセスするのに他と違う書き方になると使い方を間違えそうでやだし、全ての変数にアクセサ書くのも嫌だ。 そんな時のためにproperty関数や@propertyがあると思っているのは正しいですか?
- 23 名前:デフォルトの名無しさん mailto:sage [2013/08/08(木) 00:57:11.02 ]
- 正しくなかったらなんなの?
- 24 名前:デフォルトの名無しさん mailto:sage [2013/08/08(木) 18:33:54.57 ]
- >>23
まずは質問に答えろよ
- 25 名前:デフォルトの名無しさん mailto:sage [2013/08/08(木) 18:39:47.78 ]
- >>24は答えてないから質問した本人なんだろうね
- 26 名前:デフォルトの名無しさん mailto:sage [2013/08/08(木) 19:11:20.50 ]
- >>25
俺はわからんから答えられないんだよ Pythonにpropertyというキーワードがあることすら知らん
- 27 名前:デフォルトの名無しさん mailto:sage [2013/08/08(木) 20:01:28.04 ]
- 正しいか正しくないかは別として、おマイさんがその機能をそのような目的で
美味しくいただけるのであれば、それでいいのでは?
- 28 名前:デフォルトの名無しさん mailto:sage [2013/08/08(木) 20:32:32.36 ]
- >>22
正しい解答かどうかは保証しませんが正しくないです で、どうする?
- 29 名前:デフォルトの名無しさん mailto:sage [2013/08/08(木) 21:48:07.59 ]
- 単にこの認識であってるならそれでいいし違うっていうなら改めたいって話なのでは
- 30 名前:デフォルトの名無しさん mailto:sage [2013/08/08(木) 21:58:52.64 ]
- へえ
そうですか
- 31 名前:デフォルトの名無しさん [2013/08/09(金) 03:20:46.37 ]
- a = open(sys.argv[1], "r")
b = a.read() これを1行にできますか?
- 32 名前:デフォルトの名無しさん mailto:sage [2013/08/09(金) 13:49:26.45 ]
- a = open(sys.argv[1], "r"); b = a.read()
- 33 名前:デフォルトの名無しさん [2013/08/09(金) 15:48:47.90 ]
- a を使わずに変数1つに書き直すことはできないかって意味です!
- 34 名前:デフォルトの名無しさん mailto:sage [2013/08/09(金) 16:17:26.97 ]
- b = open(sys.argv[1], "r").read()
- 35 名前:デフォルトの名無しさん mailto:sage [2013/08/09(金) 16:44:38.68 ]
- それcloseってどうすんの?
- 36 名前:デフォルトの名無しさん mailto:sage [2013/08/09(金) 21:51:45.37 ]
- >>35
明示的なcloseはできない スクリプト終了時にガベージコレクションが働いて 暗黙的にcloseされる
- 37 名前:デフォルトの名無しさん mailto:sage [2013/08/10(土) 00:16:00.67 ]
- >>36
スクリプト終了時かどうかはわからんけどな
- 38 名前:デフォルトの名無しさん mailto:sage [2013/08/10(土) 14:43:50.09 ]
- C++風に言えば、ファイルオブジェクトはデストラクタの中でcloseするように
作られてる そのケースだとその文を実行した時点でファイルオブジェクトへの参照が残らない (参照カウントがゼロになる)から、CPythonであればすぐオブジェクトが除去されて closeは実行されるよ
- 39 名前:デフォルトの名無しさん [2013/08/11(日) 16:10:28.00 ]
- 終了しないスクリプトで
open().read() 繰り返すとメモリ足りなくなるよね
- 40 名前:デフォルトの名無しさん mailto:sage [2013/08/11(日) 16:26:17.95 ]
- 誰かwith使えって言ってやれよ…
- 41 名前:デフォルトの名無しさん mailto:sage [2013/08/11(日) 16:58:16.29 ]
- >>39
open('zap','w').write('ooo'*10000) for i in range(1000*100): open('zap','r').read() うちではこのスクリプト走らせても全くワーキングセット増えず too many open files関連のエラーにもならないし デバグビルド版のREPL立ち上げてopen().read()やっても リファレンスカウントが全く増加しないのが確認できるんだけど、どんな環境?
- 42 名前:デフォルトの名無しさん mailto:sage [2013/08/11(日) 17:48:46.21 ]
- >>40
一行でやること前提の話題だと思ってるんでwithは却下
- 43 名前:デフォルトの名無しさん mailto:sage [2013/08/11(日) 17:49:34.82 ]
- Pythonスレでインデントのないコードを見るのも悲しいし
脳内インデントしろやとかnbspつけろやゴラアというのも違う気がするので コードペーストサイトを使う方向にならないかなーと密かに今願い始めた
- 44 名前:デフォルトの名無しさん mailto:sage [2013/08/11(日) 18:10:53.66 ]
- たわいのないコード片を pastebin にわざわざ読みにいくのは嫌
- 45 名前:デフォルトの名無しさん mailto:sage [2013/08/12(月) 16:24:08.75 ]
- for i in xrange(n):
pass
- 46 名前:デフォルトの名無しさん mailto:sage [2013/08/12(月) 18:14:00.16 ]
- ム板のくせに文字参照が使えない悲劇
- 47 名前:デフォルトの名無しさん mailto:sage [2013/08/12(月) 18:41:36.94 ]
- for i in xrange(n):
pass
- 48 名前:デフォルトの名無しさん mailto:sage [2013/08/12(月) 19:30:35.13 ]
- 以前は、つかえてた
- 49 名前:デフォルトの名無しさん mailto:sage [2013/08/12(月) 19:34:11.16 ]
-  
‌|zwnj  |thinsp |nbsp  |ensp  |emsp |8204 |8201 |8198 |8197 |8196 |160 |8194 |8199 |12288 |8195
- 50 名前:デフォルトの名無しさん [2013/08/12(月) 21:27:28.79 ]
- >>47
テスト
- 51 名前:デフォルトの名無しさん mailto:sage [2013/08/14(水) 18:36:20.94 ]
- a = ['佐々木希', 168, 80, 58, 82]
というリストがあるとき、a[0]とa[2]をとりだして ['佐々木希', 80] とするにはどうすれば良いでしょうか。 a[0,2]はだめでした。
- 52 名前:デフォルトの名無しさん mailto:sage [2013/08/14(水) 18:40:00.32 ]
- >>51はa[0:3:2]でいけますね。
質問を訂正します。 a[0]とa[2]とa[3]を取り出して、 ['佐々木希', 80,58] とする方法はないでしょうか?
- 53 名前:デフォルトの名無しさん mailto:sage [2013/08/14(水) 18:55:42.07 ]
- [a[0], a[2], a[3]]
この場合は辞書使って {'name': '佐々木希', 'height': 168, ...} とかしたほうがいいかも
- 54 名前:デフォルトの名無しさん mailto:sage [2013/08/14(水) 19:26:51.17 ]
- >>53
ありがとうございます。スライスの処理にとらわれて、気がつきませんでした。
- 55 名前:デフォルトの名無しさん mailto:sage [2013/08/14(水) 21:44:40.48 ]
- ひさしぶりにゆとりってかんじ
- 56 名前:デフォルトの名無しさん mailto:sage [2013/08/15(木) 14:56:26.95 ]
- pythonから外部コマンドを「&」付き(バックグラウンド)で実行した場合
その実行したコマンドは放置して、python自体は終了したいのですが どうしたらいいでしょうか。 ご教授ください。
- 57 名前:デフォルトの名無しさん [2013/08/15(木) 22:56:54.60 ]
- >>56
Python固有じゃないけど、nohupコマンドをかます。
- 58 名前:56 mailto:sage [2013/08/16(金) 10:25:34.34 ]
- def loopThread()
print "th start." os.system("/bin/bash /usr/local/org/hoge.sh &") print "th end." exit if __name__=='__main__': print "start." thread.start_new_thread(loopThread) print "end." 物凄く端折っていますけど、こんな感じでPython側からshを叩いてます hoge.sh自体も中身で while :;do logger -p user.notice "hogehoge"; sleep 10; done; とし、ループしています。
- 59 名前:56 mailto:sage [2013/08/16(金) 10:31:16.03 ]
- やりたいことは以下です。
@python側より、特定の引数にて、ループ状のshを実行したい A実行されたループ状のshは1プロセスとして実行したい 上記ソースだと、os.systemで実行したプログラムが終了しないと 作成したスレッドが終了せず、後続の処理が行われない os.systemで流した場合は、ps-auxで確認する限り、別プロセスとして稼動していますが やはり、スレッド内で実行したプロセスが全て終わらないと親スレッド自体が終了できず、後続の処理が出来ない class test(threading.Thread): でループ状の処理を作って、スレッド作成した場合は 親プロセス内で、実行したいコマンドが動作しているので? 親スレッドが終わってしまうと子も死んでしまう
- 60 名前:56 mailto:sage [2013/08/16(金) 10:36:48.86 ]
- イメージです。
+−+ |親|←こいつは終了しない +−+ | +−+ +−|子|←親に特定の要求をするとthとして生成される +−+ | +−+ +−|孫|←孫が自分の中でos.system等で外部コマンドをnohup且つbgでshを起動する +−+ この後、孫は終了し、子に戻り、子も終了する。
- 61 名前:56 mailto:sage [2013/08/16(金) 10:38:01.51 ]
- 何度も連投すみません
子の中で外部コマンドを実行して、子が終了し 孫的な外部コマンドは別プロセス(pid)を持った状態で放置したいのです
|

|