くだすれPython(超初心者用) その18at TECH
くだすれPython(超初心者用) その18 - 暇つぶし2ch2:デフォルトの名無しさん
13/08/06 07:50:16.09
|....,,__
|_::;; ~"'ヽ
| //^''ヽ,,)
|  i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
      |( ´∀`) < きのこ のこーのこ げんきのこ ♪
      |(ノ   |つ
      |     |
     ⊂ _ ノ
       ""U
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
     (´∀` )| < エリンギ まいたけ ブナシメジ ♪
    ⊂|  (ノ |
      |     |
      ヽ _ ⊃
      .U""
|
| ミ
| ミ  サッ!
| ミ
|

3:デフォルトの名無しさん
13/08/06 07:50:51.94
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘

4:デフォルトの名無しさん
13/08/06 08:58:47.32
               ノ      ゚.ノヽ  , /}      ...
            ,,イ`"     、-'   `;_' '    ..::::::::::::::...
   ,-、  _.._   (        (,(~ヽ'~     ..:::::::::::::::::::::::
 )'~  レー'  〉   ヽ       i`'}       .:::::::::::::::::::::::
 ~つ     '-ー、  i       | i'     ...:::::::::::::::::::::::
 /       <  /     。/   !  ......:::::::::::::::::::::::::    これは>>1乙じゃなくて
/         ~^´     /},-'' ,●::::::::::::::::::::::::::::::::::::
i、        ,i' _,,...,-‐-、/    i  ::::::::  .:::::::::::::
..ゝ        <,,-==、   ,,-,/      .:::::::::::            放射能がうんたら
 )       {~''~>`v-''`ー゙`'~       ..:::::::::                          ........::.
 {        レ_ノ            ..::::::::.                         ......:::::::::
ノ         ''           ..:::::::                        ...::.:...:::::::::
                     .:::::::::                     ...:......:::::::::::: .
                    .:::::::::::.        .....      ..  ..::::::::::::::::::::::::   :::.
                    ::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. ::  ::..
                    .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::    ::.
                    ::::::::::::::::: :::::::::::::::::::::::::::::: :::::
                          .::    ::.  :::

5:デフォルトの名無しさん
13/08/06 10:38:42.00
>>1

6:デフォルトの名無しさん
13/08/07 12:58:57.86
pythonが分からず、お力を貸して頂きたく思っています。
スレチじゃないことを祈りつつ、よろしくお願い致します。


OS:Windows8
Python:ver 2.6.1
Javaフレームワーク(play1.2.5)提供のスクリプト(python)をコマンドラインから叩くとエラー。
windows7の旧マシンでは問題はなかった。
pythonはplay同梱のもの。
新しくPython2.7系をインストールして、そちらからも実行してみたがエラーとなった。

7:デフォルトの名無しさん
13/08/07 13:05:24.68
エラー貼る気はありません。

8:6
13/08/07 13:07:59.26
ここにログを書くのは不適当な気がしてきましたが、すがる思いで...。
連投申し訳ありません。。

File "PythonHOME\lib\subprocess.py", line 444, in call
return Popen(*popenargs, **kwargs).wait()
File "PythonHOME\lib\subprocess.py", line 595, in __init__
errread, errwrite)
File "PythonHOME\lib\subprocess.py", line 821, in _execute_child
startupinfo)
WindowsError: [Error 2] 指定されたファイルが見つかりません。

9:デフォルトの名無しさん
13/08/07 13:12:50.89
ソースを張る気はありません。

10:デフォルトの名無しさん
13/08/07 13:17:48.03
エラーを読む気はありません。

11:デフォルトの名無しさん
13/08/07 13:47:35.40
>>6
Win7 と Win8 は 32/64bit どっち?
あと >>8 だけ貼られても何てスクリプトをどう起動したのかわからなくて困る
コマンドラインも略さず貼って

12:6
13/08/07 15:03:25.89
>11
有難うございます。
本文の長さで書き込みエラーになってしまい...

正常に動作していた旧機のWindows7は完全に壊れており32bitか64bitか判別できません。
現機のWindows8は64bitです。

 

13:6
13/08/07 15:13:20.44
下記ログに続いて >>8 のログとなります。

\PlayHOME>play deps
Traceback (most recent call last):
File "\PlayHOME\play", line 155, in <module>
status = cmdloader.commands[play_command].execute(command=play_command, app=play_app, args=remaining_args, env=play_env, cmdloader=cmdloader)
File "\PlayHOME\framework\pym\play\commands\deps.py", line 55, in execute
return_code = subprocess.call(java_cmd, env=os.environ)

14:デフォルトの名無しさん
13/08/07 15:40:27.67
そのフレームワークのpath通してないんじゃね

15:6
13/08/07 15:53:04.17
>>14
このpythonスクリプト以外は正常に動作しているんですよね。。
いちおう以下のcmdを叩いてます。

set JAVA_HOME=C:\Program Files\Java
set PYTHONPATH=C:\play-1.2.5\python
set PYTHONHOME=C:\play-1.2.5\python
set PATH=%PATH%;C:\play-1.2.5
cmd

16:デフォルトの名無しさん
13/08/07 16:31:58.23
>>13
java_cmd と os.environ のどっちかがおかしいからエラー時の値を調べて

pdb が使えるなら \PlayHOME> python -m pdb play して
pdb が起動したら continue して args

pdb が使えないのなら
\PlayHOME\framework\pym\play\commands\deps.py の 55 行目に
return_code = subprocess.call(java_cmd, env=os.environ)
ってあるから、その前の行に
print java_cmd, os.environ って挿入してもう一度 play

17:デフォルトの名無しさん
13/08/07 17:40:32.74
コンビニ業界初のハッカソン「HackaLawson」、ローソンが19・24・25日に開催 (2013/8/7 15:25)
URLリンク(internet.watch.impress.co.jp)

 株式会社ローソンは6日、コンビニ業界では初めてだというハッカソン
「HackaLawson(ハッカローソン)2013」を開催すると発表した。

 まず8月19日にゲートシティ大崎イーストタワー(東京都品川区)のローソン本社でアイデアソンを実施。
続いて24・25日に、渋谷ヒカリエ(東京都渋谷区)でハッカソンを実施する。
現在、キャンペーンサイトにおいて参加登録を受け付けている。定員は、先着順で100名程度。

 ローソンはHackaLawsonの開催にあわせ、ローソン店舗の位置情報データを
「オープンストリートマップ」に提供する。
このほか、ローソンがアカウントを持つFacebookやTwitterなどのAPIや、
ボーカロイド「あきこロイドちゃん」の3Dデータや音声などが提供され、
ハッカソンの参加者はこれらを活用したアプリのアイデアや開発技術を競い合う。

 作品は審査の上、「ローソン賞」(からあげクン1年分)などの賞が選出されるほか、
最優秀作品はローソンと共同でのサービス化が検討されるという。


キャンペーンサイト
URLリンク(www.lawson.co.jp)

18:デフォルトの名無しさん
13/08/07 17:50:57.30
アイディアはいただきます
お金は払いません

19:デフォルトの名無しさん
13/08/07 17:57:58.69
Visual c++でCを使う方法を詳しく教えて下さい。拡張子を変えたらフォルダを開いた時はCに変わっているのですが、Visual C++で見ると変わってないです。

20:6
13/08/07 18:01:16.82
>>16
有難うございます。
printしてみたらjava_cmdもenv=os.environも値は取れていました。

やり方は指示頂いたので、ちょっとこれからは一人でやってみます。
良い機会なのでデバッグしながらpythonと格闘してみます。

21:デフォルトの名無しさん
13/08/07 18:33:37.76
>>20
その取れた値を貼ってくれ
自己完結されてそのまま引っこまれたら似たようなトラブルに遭った人の助けにならない

22:デフォルトの名無しさん
13/08/07 22:34:21.93
自作したクラスのインスタンス変数にアクセスするのに、面倒だからアクセサは一切作らないで使っていましたが、あるインスタンス変数だけは加工をして代入と取り出しをしたい。
でもアクセスするのに他と違う書き方になると使い方を間違えそうでやだし、全ての変数にアクセサ書くのも嫌だ。

そんな時のためにproperty関数や@propertyがあると思っているのは正しいですか?

23:デフォルトの名無しさん
13/08/08 00:57:11.02
正しくなかったらなんなの?

24:デフォルトの名無しさん
13/08/08 18:33:54.57
>>23
まずは質問に答えろよ

25:デフォルトの名無しさん
13/08/08 18:39:47.78
>>24は答えてないから質問した本人なんだろうね

26:デフォルトの名無しさん
13/08/08 19:11:20.50
>>25
俺はわからんから答えられないんだよ
Pythonにpropertyというキーワードがあることすら知らん

27:デフォルトの名無しさん
13/08/08 20:01:28.04
正しいか正しくないかは別として、おマイさんがその機能をそのような目的で
美味しくいただけるのであれば、それでいいのでは?

28:デフォルトの名無しさん
13/08/08 20:32:32.36
>>22
正しい解答かどうかは保証しませんが正しくないです
で、どうする?

29:デフォルトの名無しさん
13/08/08 21:48:07.59
単にこの認識であってるならそれでいいし違うっていうなら改めたいって話なのでは

30:デフォルトの名無しさん
13/08/08 21:58:52.64
へえ
そうですか

31:デフォルトの名無しさん
13/08/09 03:20:46.37
a = open(sys.argv[1], "r")
b = a.read()

これを1行にできますか?

32:デフォルトの名無しさん
13/08/09 13:49:26.45
a = open(sys.argv[1], "r"); b = a.read()

33:デフォルトの名無しさん
13/08/09 15:48:47.90
a を使わずに変数1つに書き直すことはできないかって意味です!

34:デフォルトの名無しさん
13/08/09 16:17:26.97
b = open(sys.argv[1], "r").read()

35:デフォルトの名無しさん
13/08/09 16:44:38.68
それcloseってどうすんの?

36:デフォルトの名無しさん
13/08/09 21:51:45.37
>>35
明示的なcloseはできない
スクリプト終了時にガベージコレクションが働いて
暗黙的にcloseされる

37:デフォルトの名無しさん
13/08/10 00:16:00.67
>>36
スクリプト終了時かどうかはわからんけどな

38:デフォルトの名無しさん
13/08/10 14:43:50.09
C++風に言えば、ファイルオブジェクトはデストラクタの中でcloseするように
作られてる

そのケースだとその文を実行した時点でファイルオブジェクトへの参照が残らない
(参照カウントがゼロになる)から、CPythonであればすぐオブジェクトが除去されて
closeは実行されるよ

39:デフォルトの名無しさん
13/08/11 16:10:28.00
終了しないスクリプトで
open().read()
繰り返すとメモリ足りなくなるよね

40:デフォルトの名無しさん
13/08/11 16:26:17.95
誰かwith使えって言ってやれよ…

41:デフォルトの名無しさん
13/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:デフォルトの名無しさん
13/08/11 17:48:46.21
>>40
一行でやること前提の話題だと思ってるんでwithは却下

43:デフォルトの名無しさん
13/08/11 17:49:34.82
Pythonスレでインデントのないコードを見るのも悲しいし
脳内インデントしろやとかnbspつけろやゴラアというのも違う気がするので
コードペーストサイトを使う方向にならないかなーと密かに今願い始めた

44:デフォルトの名無しさん
13/08/11 18:10:53.66
たわいのないコード片を pastebin にわざわざ読みにいくのは嫌

45:デフォルトの名無しさん
13/08/12 16:24:08.75
for i in xrange(n):
&nbsp;&nbsp;&nbsp;&nbsp;pass

46:デフォルトの名無しさん
13/08/12 18:14:00.16
ム板のくせに文字参照が使えない悲劇

47:デフォルトの名無しさん
13/08/12 18:41:36.94
for i in xrange(n):
    pass

48:デフォルトの名無しさん
13/08/12 19:30:35.13
以前は、つかえてた

49:デフォルトの名無しさん
13/08/12 19:34:11.16
&#160;

&zwnj;|zwnj
&thinsp;|thinsp
&nbsp;|nbsp
&ensp;|ensp
&emsp;|emsp

‌|8204
 |8201
 |8198
 |8197
 |8196
 |160
 |8194
 |8199
 |12288
 |8195

50:デフォルトの名無しさん
13/08/12 21:27:28.79
>>47
テスト

51:デフォルトの名無しさん
13/08/14 18:36:20.94
a = ['佐々木希', 168, 80, 58, 82]
というリストがあるとき、a[0]とa[2]をとりだして
['佐々木希', 80]
とするにはどうすれば良いでしょうか。
a[0,2]はだめでした。

52:デフォルトの名無しさん
13/08/14 18:40:00.32
>>51はa[0:3:2]でいけますね。

質問を訂正します。
a[0]とa[2]とa[3]を取り出して、
['佐々木希', 80,58]
とする方法はないでしょうか?

53:デフォルトの名無しさん
13/08/14 18:55:42.07
[a[0], a[2], a[3]]
この場合は辞書使って {'name': '佐々木希', 'height': 168, ...} とかしたほうがいいかも

54:デフォルトの名無しさん
13/08/14 19:26:51.17
>>53
ありがとうございます。スライスの処理にとらわれて、気がつきませんでした。

55:デフォルトの名無しさん
13/08/14 21:44:40.48
ひさしぶりにゆとりってかんじ

56:デフォルトの名無しさん
13/08/15 14:56:26.95
pythonから外部コマンドを「&」付き(バックグラウンド)で実行した場合
その実行したコマンドは放置して、python自体は終了したいのですが
どうしたらいいでしょうか。

ご教授ください。

57:デフォルトの名無しさん
13/08/15 22:56:54.60
>>56
Python固有じゃないけど、nohupコマンドをかます。

58:56
13/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
13/08/16 10:31:16.03
やりたいことは以下です。

①python側より、特定の引数にて、ループ状のshを実行したい
②実行されたループ状のshは1プロセスとして実行したい

上記ソースだと、os.systemで実行したプログラムが終了しないと
作成したスレッドが終了せず、後続の処理が行われない

os.systemで流した場合は、ps-auxで確認する限り、別プロセスとして稼動していますが
やはり、スレッド内で実行したプロセスが全て終わらないと親スレッド自体が終了できず、後続の処理が出来ない

class test(threading.Thread): でループ状の処理を作って、スレッド作成した場合は
親プロセス内で、実行したいコマンドが動作しているので? 親スレッドが終わってしまうと子も死んでしまう

60:56
13/08/16 10:36:48.86
イメージです。
+-+
|親|←こいつは終了しない
+-+
 | +-+
 +-|子|←親に特定の要求をするとthとして生成される
   +-+
    | +-+
    +-|孫|←孫が自分の中でos.system等で外部コマンドをnohup且つbgでshを起動する
      +-+
この後、孫は終了し、子に戻り、子も終了する。

61:56
13/08/16 10:38:01.51
何度も連投すみません

子の中で外部コマンドを実行して、子が終了し
孫的な外部コマンドは別プロセス(pid)を持った状態で放置したいのです


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch