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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

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

前スレ
くだすれPython(超初心者用) その17
http://toro.2ch.net/test/read.cgi/tech/1365323116/
関連スレ
Pythonのお勉強 Part48
http://toro.2ch.net/test/read.cgi/tech/1358750040/
【実験台】 Python 3.0 のお勉強 Part 1 【非互換】
http://toro.2ch.net/test/read.cgi/tech/1235050215/
◆関連リンク
Python の Home Page
ttp://www.python.org/
2デフォルトの名無しさん:2013/08/06(火) 07:50:16.09
|....,,__
|_::;; ~"'ヽ
| //^''ヽ,,)
|  i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
      |( ´∀`) < きのこ のこーのこ げんきのこ ♪
      |(ノ   |つ
      |     |
     ⊂ _ ノ
       ""U
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
     (´∀` )| < エリンギ まいたけ ブナシメジ ♪
    ⊂|  (ノ |
      |     |
      ヽ _ ⊃
      .U""
|
| ミ
| ミ  サッ!
| ミ
|
3デフォルトの名無しさん:2013/08/06(火) 07:50:51.94
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
4デフォルトの名無しさん:2013/08/06(火) 08:58:47.32
               ノ      ゚.ノヽ  , /}      ...
            ,,イ`"     、-'   `;_' '    ..::::::::::::::...
   ,-、  _.._   (        (,(~ヽ'~     ..:::::::::::::::::::::::
 )'~  レー'  〉   ヽ       i`'}       .:::::::::::::::::::::::
 ~つ     '-ー、  i       | i'     ...:::::::::::::::::::::::
 /       <  /     。/   !  ......:::::::::::::::::::::::::    これは>>1乙じゃなくて
/         ~^´     /},-'' ,●::::::::::::::::::::::::::::::::::::
i、        ,i' _,,...,-‐-、/    i  ::::::::  .:::::::::::::
..ゝ        <,,-==、   ,,-,/      .:::::::::::            放射能がうんたら
 )       {~''~>`v-''`ー゙`'~       ..:::::::::                          ........::.
 {        レ_ノ            ..::::::::.                         ......:::::::::
ノ         ''           ..:::::::                        ...::.:...:::::::::
                     .:::::::::                     ...:......:::::::::::: .
                    .:::::::::::.        .....      ..  ..::::::::::::::::::::::::   :::.
                    ::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. ::  ::..
                    .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::    ::.
                    ::::::::::::::::: :::::::::::::::::::::::::::::: :::::
                          .::    ::.  :::
5デフォルトの名無しさん:2013/08/06(火) 10:38:42.00
>>1
6デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/08/07(水) 13:05:24.68
エラー貼る気はありません。
86:2013/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デフォルトの名無しさん:2013/08/07(水) 13:12:50.89
ソースを張る気はありません。
10デフォルトの名無しさん:2013/08/07(水) 13:17:48.03
エラーを読む気はありません。
11デフォルトの名無しさん:2013/08/07(水) 13:47:35.40
>>6
Win7 と Win8 は 32/64bit どっち?
あと >>8 だけ貼られても何てスクリプトをどう起動したのかわからなくて困る
コマンドラインも略さず貼って
126:2013/08/07(水) 15:03:25.89
>11
有難うございます。
本文の長さで書き込みエラーになってしまい...

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

 
136:2013/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デフォルトの名無しさん:2013/08/07(水) 15:40:27.67
そのフレームワークのpath通してないんじゃね
156:2013/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デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/08/07(水) 17:40:32.74
コンビニ業界初のハッカソン「HackaLawson」、ローソンが19・24・25日に開催 (2013/8/7 15:25)
http://internet.watch.impress.co.jp/docs/news/20130807_610713.html

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

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

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

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


キャンペーンサイト
http://www.lawson.co.jp/campaign/static/hackalawson/
18デフォルトの名無しさん:2013/08/07(水) 17:50:57.30
アイディアはいただきます
お金は払いません
19デフォルトの名無しさん:2013/08/07(水) 17:57:58.69
Visual c++でCを使う方法を詳しく教えて下さい。拡張子を変えたらフォルダを開いた時はCに変わっているのですが、Visual C++で見ると変わってないです。
206:2013/08/07(水) 18:01:16.82
>>16
有難うございます。
printしてみたらjava_cmdもenv=os.environも値は取れていました。

やり方は指示頂いたので、ちょっとこれからは一人でやってみます。
良い機会なのでデバッグしながらpythonと格闘してみます。
21デフォルトの名無しさん:2013/08/07(水) 18:33:37.76
>>20
その取れた値を貼ってくれ
自己完結されてそのまま引っこまれたら似たようなトラブルに遭った人の助けにならない
22デフォルトの名無しさん:2013/08/07(水) 22:34:21.93
自作したクラスのインスタンス変数にアクセスするのに、面倒だからアクセサは一切作らないで使っていましたが、あるインスタンス変数だけは加工をして代入と取り出しをしたい。
でもアクセスするのに他と違う書き方になると使い方を間違えそうでやだし、全ての変数にアクセサ書くのも嫌だ。

そんな時のためにproperty関数や@propertyがあると思っているのは正しいですか?
23デフォルトの名無しさん:2013/08/08(木) 00:57:11.02
正しくなかったらなんなの?
24デフォルトの名無しさん:2013/08/08(木) 18:33:54.57
>>23
まずは質問に答えろよ
25デフォルトの名無しさん:2013/08/08(木) 18:39:47.78
>>24は答えてないから質問した本人なんだろうね
26デフォルトの名無しさん:2013/08/08(木) 19:11:20.50
>>25
俺はわからんから答えられないんだよ
Pythonにpropertyというキーワードがあることすら知らん
27デフォルトの名無しさん:2013/08/08(木) 20:01:28.04
正しいか正しくないかは別として、おマイさんがその機能をそのような目的で
美味しくいただけるのであれば、それでいいのでは?
28デフォルトの名無しさん:2013/08/08(木) 20:32:32.36
>>22
正しい解答かどうかは保証しませんが正しくないです
で、どうする?
29デフォルトの名無しさん:2013/08/08(木) 21:48:07.59
単にこの認識であってるならそれでいいし違うっていうなら改めたいって話なのでは
30デフォルトの名無しさん: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デフォルトの名無しさん: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デフォルトの名無しさん:2013/08/09(金) 16:17:26.97
b = open(sys.argv[1], "r").read()
35デフォルトの名無しさん:2013/08/09(金) 16:44:38.68
それcloseってどうすんの?
36デフォルトの名無しさん:2013/08/09(金) 21:51:45.37
>>35
明示的なcloseはできない
スクリプト終了時にガベージコレクションが働いて
暗黙的にcloseされる
37デフォルトの名無しさん:2013/08/10(土) 00:16:00.67
>>36
スクリプト終了時かどうかはわからんけどな
38デフォルトの名無しさん:2013/08/10(土) 14:43:50.09
C++風に言えば、ファイルオブジェクトはデストラクタの中でcloseするように
作られてる

そのケースだとその文を実行した時点でファイルオブジェクトへの参照が残らない
(参照カウントがゼロになる)から、CPythonであればすぐオブジェクトが除去されて
closeは実行されるよ
39デフォルトの名無しさん:2013/08/11(日) 16:10:28.00
終了しないスクリプトで
open().read()
繰り返すとメモリ足りなくなるよね
40デフォルトの名無しさん:2013/08/11(日) 16:26:17.95
誰かwith使えって言ってやれよ…
41デフォルトの名無しさん: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デフォルトの名無しさん:2013/08/11(日) 17:48:46.21
>>40
一行でやること前提の話題だと思ってるんでwithは却下
43デフォルトの名無しさん:2013/08/11(日) 17:49:34.82
Pythonスレでインデントのないコードを見るのも悲しいし
脳内インデントしろやとかnbspつけろやゴラアというのも違う気がするので
コードペーストサイトを使う方向にならないかなーと密かに今願い始めた
44デフォルトの名無しさん:2013/08/11(日) 18:10:53.66
たわいのないコード片を pastebin にわざわざ読みにいくのは嫌
45デフォルトの名無しさん:2013/08/12(月) 16:24:08.75
for i in xrange(n):
&nbsp;&nbsp;&nbsp;&nbsp;pass
46デフォルトの名無しさん:2013/08/12(月) 18:14:00.16
ム板のくせに文字参照が使えない悲劇
47デフォルトの名無しさん:2013/08/12(月) 18:41:36.94
for i in xrange(n):
    pass
48デフォルトの名無しさん:2013/08/12(月) 19:30:35.13
以前は、つかえてた
49デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/08/12(月) 21:27:28.79
>>47
テスト
51デフォルトの名無しさん:2013/08/14(水) 18:36:20.94
a = ['佐々木希', 168, 80, 58, 82]
というリストがあるとき、a[0]とa[2]をとりだして
['佐々木希', 80]
とするにはどうすれば良いでしょうか。
a[0,2]はだめでした。
52デフォルトの名無しさん:2013/08/14(水) 18:40:00.32
>>51はa[0:3:2]でいけますね。

質問を訂正します。
a[0]とa[2]とa[3]を取り出して、
['佐々木希', 80,58]
とする方法はないでしょうか?
53デフォルトの名無しさん:2013/08/14(水) 18:55:42.07
[a[0], a[2], a[3]]
この場合は辞書使って {'name': '佐々木希', 'height': 168, ...} とかしたほうがいいかも
54デフォルトの名無しさん:2013/08/14(水) 19:26:51.17
>>53
ありがとうございます。スライスの処理にとらわれて、気がつきませんでした。
55デフォルトの名無しさん:2013/08/14(水) 21:44:40.48
ひさしぶりにゆとりってかんじ
56デフォルトの名無しさん:2013/08/15(木) 14:56:26.95
pythonから外部コマンドを「&」付き(バックグラウンド)で実行した場合
その実行したコマンドは放置して、python自体は終了したいのですが
どうしたらいいでしょうか。

ご教授ください。
57デフォルトの名無しさん:2013/08/15(木) 22:56:54.60
>>56
Python固有じゃないけど、nohupコマンドをかます。
5856: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;

とし、ループしています。
5956:2013/08/16(金) 10:31:16.03
やりたいことは以下です。

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

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

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

class test(threading.Thread): でループ状の処理を作って、スレッド作成した場合は
親プロセス内で、実行したいコマンドが動作しているので? 親スレッドが終わってしまうと子も死んでしまう
6056:2013/08/16(金) 10:36:48.86
イメージです。
+−+
|親|←こいつは終了しない
+−+
 | +−+
 +−|子|←親に特定の要求をするとthとして生成される
   +−+
    | +−+
    +−|孫|←孫が自分の中でos.system等で外部コマンドをnohup且つbgでshを起動する
      +−+
この後、孫は終了し、子に戻り、子も終了する。
6156:2013/08/16(金) 10:38:01.51
何度も連投すみません

子の中で外部コマンドを実行して、子が終了し
孫的な外部コマンドは別プロセス(pid)を持った状態で放置したいのです
62デフォルトの名無しさん:2013/08/18(日) 16:29:11.06
windwosとlinuxでコードを分ける場合
例えばcですと、#ifdefとかで分けたと思うのですが、

pythonの場合はどうやるのでしょうか?

モジュールファイルを、windows用とかlinux用とか分けるのでしょうか?
63デフォルトの名無しさん:2013/08/18(日) 16:49:19.39
分ける必要があるの?
64デフォルトの名無しさん:2013/08/18(日) 17:39:53.36
pythonに標準でない、OS依存のコマンドを使いたいんです。
しかも、WindowsとLinuxとで両方同じように作りたいので、どう実装したらいいのかと?
65デフォルトの名無しさん:2013/08/18(日) 18:06:21.33
import os
if os.name == 'nt':
 pass #windows
elif os.name == 'posix':
 pass #linux
66デフォルトの名無しさん:2013/08/18(日) 23:22:56.62
>>65

ありがとうございました。

やってみたら、さくっとできたので、今日は休み最後の日ですが1つだけ、気持よく明日を迎えられそうです。
67デフォルトの名無しさん:2013/08/19(月) 18:23:01.61
小田和正か
68デフォルトの名無しさん:2013/08/19(月) 20:56:47.05
もうおわりだね。きみがちいさくみえる
69デフォルトの名無しさん:2013/08/19(月) 22:32:22.65
PerlとPythonの間にRubyを入れました
だからRubyは少しだけ中途半端な言語
70デフォルトの名無しさん:2013/08/23(金) 00:38:54.66
セルオートマトンとかの可視化をしたい
(GUIによる操作は出来なくてよくて,表示さえ出来ればよい.動画として見たい)場合って
どのパッケージを使うのがいいでしょうか.
調べた範囲では matplotlib, OpenGL, pygame 辺りが出てきたんですが
71デフォルトの名無しさん:2013/08/23(金) 01:23:13.29
>>70
連番pngとかで良ければMatplotlibが楽チン
後から別のソフトで動画にする感じで
72デフォルトの名無しさん:2013/08/23(金) 01:37:09.14
参考:matplotlibでライフゲームしているもの

A simple Python matplotlib implementation of Conway’s Game of Life
http://electronut.in/a-simple-python-matplotlib-implementation-of-conways-game-of-life/

animation apiからsave関数を使えばmp4だかでいきなり動画にできたはず
http://matplotlib.org/api/animation_api.html
73デフォルトの名無しさん:2013/08/23(金) 14:31:24.54
>>71 >>72 ありがとうございます! imagemagick とかもあるのでそれでやってみます
7473:2013/08/26(月) 18:03:31.21
>>71 >>72
ありがとうございました
http://imgur.com/pIJ7eGl
75デフォルトの名無しさん:2013/08/28(水) 17:56:29.74
PythonでWebサイトが作りたいのですが
Rubyでいうとpassengerとかthinとかrainbowとか専用サーバツールがgemで入れられます
http://docs.python.jp/3.3/howto/webservers.htmlを確認したのですが
どれもnginxやapacheと組み合わせて使う感じのしかないのですが
PythonではRubyのような感じでpipでwebサーバを入れて動かすって言うのはしない文化なのでしょうか?
どういう手法でWebサイトを動かすのがメジャーでしょうか?
76デフォルトの名無しさん:2013/08/28(水) 19:06:56.83
django
77デフォルトの名無しさん:2013/08/28(水) 19:08:11.72
djangoというのはフレームワークでありますがwebサーバの機能も含まれているということでしょうか?
78デフォルトの名無しさん:2013/08/28(水) 19:13:52.98
開発中は標準ライブラリの奴
デプロイ後は普通にApache等だと思いますよ

ただ標準ライブラリの奴を意識して使うことはないですね
ほとんどのフレームワークはデバッグ用Webサーバーを起動する能力を持ってるので
79デフォルトの名無しさん:2013/08/28(水) 19:14:44.90
80デフォルトの名無しさん:2013/08/29(木) 00:39:47.43
>>75
そのページに書いてあるけど、いまどきのPythonのWebアプリはWSGIという
インタフェースの上で動作する(直接またはフレームワーク経由で)

>>77 の疑問はもっともで、WSGIを(主に)アプリケーションサイドで
サポートするフレームワークと、WSGIをホストするサーバないしゲートウェイは
概念としては別物
Javaで言ったら前者がStruts等で後者がTomcat等という話になるしね

ただしPythonではホストはとても簡単に実装できる(標準でもwsgirefという
単独でWebサーバとして動作する簡素なホスト実装がついてる)ので、
アプリケーションフレームワークにもオマケとしてホスト実装がついている
ことが多い
一方uWSGIやflupのようなものはホスト専用の実装で、こちらも色々ある

標準のwsgirefは実運用に耐えるようなものではないけど、使うのは簡単だし
専用のWebサーバを立てなくともこれ一つで動作確認ぐらいには事足りるよ
81デフォルトの名無しさん:2013/08/29(木) 10:03:39.34
実運用に耐えるWebサーバは!??????????
82デフォルトの名無しさん:2013/08/29(木) 10:31:52.63
アパッチちゃん!!
83デフォルトの名無しさん:2013/08/29(木) 10:41:34.20
apache+mod_wsgiが現状最強!?
84デフォルトの名無しさん:2013/08/29(木) 12:19:02.37
日本でPython使ってる企業のサイトってある?
PythonってWebに向いてないと思わない?
Ruby on Railsが流行ってるけど、WebはPHPにまかせとけばいいと思うんだよ
Pythonは日々の作業の自動化とかそういう用途に使うのがおすすめじゃない?
85デフォルトの名無しさん:2013/08/29(木) 12:44:28.50
そうは思いませんね
次のかたどうぞ
86デフォルトの名無しさん:2013/08/29(木) 14:32:03.30
なぜそう思わないのかあなたは説明をしていない
>>85はA型の神経質
87デフォルトの名無しさん:2013/08/29(木) 15:06:09.37
>>79のフレームワーク使って勉強始めるとかならFlaskかPyramidがよさそうに感じた
自分は>>83でやってるけど。

https://github.com/mitsuhiko/flask
ていうか、何でFlaskのgithubのページ光彦なん。コナンなの?
でググったら、マジでコナンだった
88デフォルトの名無しさん:2013/08/29(木) 19:11:28.24
python初心者の者です。
クグッたのですが、
答えが得られなかったので
ここで質問させていただきます。

Pythonをインストールして、
pathに追加したんですが、
コマンドプロンプトを再起動すると
また追加するはめになります。
どうしたらいいですか?

あと、僕はpythonだけインストールダウンロードしたんですが、他にダウンロードするものはありますか?インタプリタなど。

回答をお願いします。
89デフォルトの名無しさん:2013/08/29(木) 19:33:24.13
windows版のインストーラーでいれたなら勝手にパス登録してくれるはずなので
コマンドプロンプトからpython -vってやればバージョンが表示されるはずなんだけど
90デフォルトの名無しさん:2013/08/29(木) 19:55:44.44
http://uploader.sakura.ne.jp/src/up125963.png
今インストールしてみたら、デフォルトではこうなってた。
この一番下のバツになってるところをクリックして、上のTest suiteと同じマークにしてインストールすると追加される。
91デフォルトの名無しさん:2013/08/29(木) 20:00:07.93
http://www.python.jp/download/
日本語ページふるい
92名無し:2013/08/29(木) 20:23:37.15
3使う利点ってあんの?
93デフォルトの名無しさん:2013/08/29(木) 21:05:45.22
Pythonって標準ライブラリでdoctestとかtestとかunittextとかテスト用のライブラリがあるんですが
これらを使って書くのが定番ですか?
94デフォルトの名無しさん:2013/08/29(木) 21:06:06.77
3が使えるようになる
95デフォルトの名無しさん:2013/08/29(木) 21:26:02.63
>>89>>90
解決しました。ありがとうございます。


今、ipythonをダウンロードしているんですが、すげい時間がかかっているんですが、これが普通ですか?
96デフォルトの名無しさん:2013/08/29(木) 23:44:14.93
>>95

自己解決しました
97デフォルトの名無しさん:2013/08/29(木) 23:44:33.99
調子に乗るなよ
98デフォルトの名無しさん:2013/08/29(木) 23:51:14.21
乗ってません><
99デフォルトの名無しさん:2013/08/30(金) 09:30:23.64
みなさんお世話になりました
明日で2ch終了らしいので
今のうちに最後のご挨拶をしておきます
100デフォルトの名無しさん:2013/08/30(金) 12:06:40.31
マジですcar
101デフォルトの名無しさん:2013/08/30(金) 12:31:00.55
cdrらない
102デフォルトの名無しさん:2013/08/30(金) 12:34:31.56
Pythonで他の言語よりも人気のCMSってありますか?
プロジェクト管理だとTracよりRedmineだし
フレームワークもdjangoよりもRuby on Railsだし
ブログだとPHPのWordPressがダントツ人気だし
だけどPythonで他の言語のものより人気のあるCMSって聞いたことないのですが何かありませんか?
103デフォルトの名無しさん:2013/08/30(金) 12:40:48.15
特にないと思います
104デフォルトの名無しさん:2013/08/30(金) 13:37:39.66
人気でものを選ぶひとって
105デフォルトの名無しさん:2013/08/30(金) 13:55:15.65
>>102
ありませんので帰って、どうぞ
106デフォルトの名無しさん:2013/08/30(金) 14:45:32.75
こんなスレにまでホモが
107デフォルトの名無しさん:2013/08/30(金) 15:10:55.40
このスレに>>85とか>>105とか一人で話を進める人って頭おかしい
108デフォルトの名無しさん:2013/08/30(金) 15:20:07.43
日本語がおかしい
109デフォルトの名無しさん:2013/08/30(金) 20:14:53.48
pythonのドキュメントととい便利なものを見つけた。3系に対応している入門サイトがなかったけど、対応してるし。これで勉強できる。
110デフォルトの名無しさん:2013/08/30(金) 20:30:02.98
CMSという単語の使い方がわからん。
111デフォルトの名無しさん:2013/08/30(金) 20:41:48.34
>>102


bacsoftwareconsulting.com/blog/index.php/web-development/best-free-content-management-systems-cms/
112デフォルトの名無しさん:2013/08/30(金) 20:41:55.05
>>107
そうは思いませんね
113デフォルトの名無しさん:2013/08/30(金) 22:03:03.91
pythonのインタプリタってどうやって使うんでしょうか?
python -c command [arg] ...って入力しても起動しません
114デフォルトの名無しさん:2013/08/30(金) 22:04:47.28
>>89の前後あたりを参考にしてください
115デフォルトの名無しさん:2013/08/30(金) 22:13:33.37
>>114 大量の文字列が表示されましたが、これがバージョンですか?

pythonのバージョンは3.3.1です。
116デフォルトの名無しさん:2013/08/30(金) 22:17:32.05
pythonとだけ打て

-cはコンソールに打ったコマンドを実行してすぐに終了してしまう
117デフォルトの名無しさん:2013/08/30(金) 22:25:09.91
>>114>>116
ありがとうございます
できました
118デフォルトの名無しさん:2013/08/30(金) 23:20:05.07
import zipfile

path = "C:\a\b\test.txt" # 圧縮元のファイル
zippath = "C:\a\test.zip" # 圧縮先のファイル

with zipfile.ZipFile(zippath, 'w') as f:
f.write(path)

これで作成されたtest.zipを開くと
a\b\test.import textwrap
という階層になってしまい、カレントフォルダ(b)と、さらに上のカレントフォルダ(a)も無駄に追加されてしまいます

test.zipを開いたら、test.txtのみの状態にしたいのですがアドバイスお願いします
119デフォルトの名無しさん:2013/08/30(金) 23:36:17.59
write の第二引数で指定できる
zipfile.write(zippath, "test.txt")
120デフォルトの名無しさん:2013/08/30(金) 23:48:44.07
できました

ありがとうございます
121デフォルトの名無しさん:2013/08/31(土) 12:24:02.93
パーフェクトRubyにはsinatraの解説が長々と掲載されていたのに、なぜパーフェクトPythonにはflaskの解説が無いのでしょうか?
122デフォルトの名無しさん:2013/08/31(土) 12:27:42.91
3.3準拠にしたから2.7しか対応してないFlaskは扱えなかっただけです
本当に単にそれだけの話
123デフォルトの名無しさん:2013/08/31(土) 12:29:47.91
ちなみに最新のFlaskでは対応しました
それが13年6月なので、13年3月刊行の本に載せるのは無理です
124デフォルトの名無しさん:2013/08/31(土) 12:34:49.18
著者降臨wwwwwwwwwwwww
125デフォルトの名無しさん:2013/08/31(土) 12:37:20.86
いや面目ない
だったらPyramidでも扱うべきだったかも
126デフォルトの名無しさん:2013/08/31(土) 12:50:09.94
各論はすぐに陳腐化するからとっかかりを示すだけで十分だと思うなあ
ライブラリを通じて背後の技術を学ばせるなら話は別だけど

参考文献や読書ガイドが充実していたほうが嬉しい
127デフォルトの名無しさん:2013/08/31(土) 12:51:43.21
次に出版するときはbottleを入れてくれたまえ
128デフォルトの名無しさん:2013/08/31(土) 12:53:40.63
>>125
FlaskとPyramidとBottleを収録した解説本を発行するように出版社に提案して下さるとありがたいです。
3つあればボリュームとしては充分でしょうし、これらのフレームワークに関しては書籍が無いので需要はあると思う次第です。
129デフォルトの名無しさん:2013/08/31(土) 12:57:35.11
とりあえず至急bottleの和訳ドキュメントをだしてくれ!
130デフォルトの名無しさん:2013/08/31(土) 12:58:42.91
ウェブケーは需要あるだろうけどいわゆるマイクロウェブアプリケーションフレームワークって
そんなに難しいことやってると思えないし本一冊書くほど語ることあるの?
あっ後ろから刺されそう
131デフォルトの名無しさん:2013/08/31(土) 13:01:56.40
bottleの日本語公式サイトを作ってくれよ
132デフォルトの名無しさん:2013/08/31(土) 13:08:28.60
黙ってるだけで意外と人いるのなこのスレ
133デフォルトの名無しさん:2013/08/31(土) 13:09:10.64
webで使いたいので入門書を買う。

フレームワークの解説本が無い。

webを検索してみる。

英語しかなくて挫折。

多くのweb目的の初心者がこれに近いパターンで日本語書籍の多いRubyに流れているんじゃないだろうか?

色々知ってしまうとPHPより遅いと言われているRubyの勉強なんてしたく無い。
134デフォルトの名無しさん:2013/08/31(土) 13:23:56.34
電子書籍で販売してくれると嬉しい
出版社に頼らず個人で勝手に作って売っちゃうのはどうでしょうかw
135デフォルトの名無しさん:2013/08/31(土) 13:24:45.08
馬鹿には無理
136デフォルトの名無しさん:2013/08/31(土) 13:34:26.69
Rubyが遅いのはWindowsだけ
137デフォルトの名無しさん:2013/08/31(土) 14:07:11.65
>>134
そういう事してくれる人がいたら泣いて喜ぶかも。

>>136
他にもコードが綺麗とか色々あるんです。
138デフォルトの名無しさん:2013/08/31(土) 17:39:58.17
>>133
技術英語程度も読めないようじゃ限界は見えてるんだからそういう馬鹿はどうでもいい
139デフォルトの名無しさん:2013/08/31(土) 22:48:25.47
もし翻訳するならGoogleグループ使えばいいよ
140デフォルトの名無しさん:2013/08/31(土) 23:17:04.87
ttp://d.hatena.ne.jp/omiyan/20101221/1292938626

print(12/26)


Python3.3だと0にならなくて0.46153846153846156になるんですがなんか僕のやりかた間違ってますか?
141デフォルトの名無しさん:2013/08/31(土) 23:26:29.00
間違ってます
Python3では12//26とする
142デフォルトの名無しさん:2013/09/01(日) 00:56:00.02
ちなみに 12//26 の書き方は 2.x でも使えるデ
143デフォルトの名無しさん:2013/09/01(日) 00:59:40.47
個人的なことを言えばint/intがintでないのは違和感がある
print「文」の違和感にくらべればどうってことはないけど
144デフォルトの名無しさん:2013/09/01(日) 23:03:47.61
a = 0
b = 1

a += 1
b += 1

これを
a , b = 1, 1
の要領で
a, b += 1, 1
ってやってみたのですがダメでした
こんなかんじで書ける方法ってありませんか?
145デフォルトの名無しさん:2013/09/01(日) 23:29:46.63
ありませんですん
146デフォルトの名無しさん:2013/09/01(日) 23:41:57.07
>>144
NumPy
147デフォルトの名無しさん:2013/09/02(月) 00:14:57.34
numpyは便利過ぎてやばい
マジで
148デフォルトの名無しさん:2013/09/02(月) 23:42:34.09
range(0, 10)が0から9までって言うのがわかりづらい
0から10まで作らせてくれよ
range(0, 10+1)って書くの面毒くさい
149デフォルトの名無しさん:2013/09/03(火) 00:21:51.24
off by oneには慣れて頂かないとプログラミング全般も怪しからんというものです
150デフォルトの名無しさん:2013/09/03(火) 05:40:21.56
>>148
youのオリジナルrange()作っちゃいなよ
151デフォルトの名無しさん:2013/09/03(火) 05:43:03.10
天才ktkr
152デフォルトの名無しさん:2013/09/03(火) 11:22:35.68
Windowsに2.7と3.3を入れたいんですがなぜ公式サイトはインストーラー形式しか配布してくれないのでしょうか?
zipくれって要望はでてないのでしょうか?
153デフォルトの名無しさん:2013/09/03(火) 12:03:32.09
なぜ公式に聞かないんでしょうか
154デフォルトの名無しさん:2013/09/03(火) 12:14:10.47
インストーラで入れても共存できるけど
155デフォルトの名無しさん:2013/09/03(火) 12:59:18.69
インストーラーが書いてくれる環境変数って2.7と3.3で同じでしょうか?
同じであれば二つともインストールしてフォルダ名からバージョン番号を省いてC:\Pythonで統一できるんですが
156デフォルトの名無しさん:2013/09/03(火) 13:27:48.56
実行ファイル名をpython2.exeやpython27.exeにかえる。
157デフォルトの名無しさん:2013/09/03(火) 15:53:40.84
python.exeにパスを通すのではなく、py.exeを使うのが楽
158デフォルトの名無しさん:2013/09/03(火) 16:16:50.35
class A:
def __init__(self):
self.test = "test"
このself.testに別クラスからアクセスすることはできますか?
159デフォルトの名無しさん:2013/09/03(火) 16:20:58.66
PHPでいうとユニットテストはPHPUnitが定番中の定番なんですが
Pythonでは定番のユニットテストというのはありますか?
標準ライブラリに一応そういうのありますけども。。。
160デフォルトの名無しさん:2013/09/03(火) 16:33:44.38
>>158
class A:
def __init__(self):
self._test = "test"
@property
def test(self):
return self._test
@test.setter
def test(self, value):
self._test = value
@test.deleter
def test(self):
del self._test

a = A
print(a.test)
a.test = "fack"
print(a.test)
del a.test
161デフォルトの名無しさん:2013/09/03(火) 18:08:14.01
python3.3でのプログラミングを解説してる日本語サイトはないのかね。英語サイトは英語読むのに時間がかかって頭が痛くなる。
162デフォルトの名無しさん:2013/09/03(火) 18:09:37.19
>>152
インストーラー嫌いなので
msiを展開してから適当な場所においてますよ
「msi 展開」等でググればすぐに出ますが
msiexec /a python-3.3.2.msi targetdir="C:\Python3.3.2" /qn
とか

巨大なインストーラーとかを
個々のマシンで展開するかわりに
共有サーバー上に先に展開しておいて
そこからインストールするための機能なんでしょうか
163デフォルトの名無しさん:2013/09/03(火) 21:53:55.21
while (false !== (a = test()){
echo a;
}

Javascriptでいう上の動作をさせるコードが書きたいのですが
Pythonでサンプルでこういうのを書きました

i = 0 # 無限ループ対策用
s = ""
a = 1 #
while not None == (s = a):
print(1)
  # iが5以上になったら aにNoneを入れてループを抜ける
if i > 5:
a = None
i += 1

whileの条件文のところで変数に代入して、それがNoneでなければループしたいってコードが書きたいのですが
(s = a)の=のところでSyntaxError: invalid syntaxってなってしまいます
アドバイスお願いします
164163:2013/09/03(火) 21:57:50.72
事故解決しました
これ仕様なんですね
165デフォルトの名無しさん:2013/09/04(水) 11:55:41.90
apache+mod_wsgi+bottleで動かしてるんですが
apacheを再起動しないとファイルに修正した内容が反映されないんですが
再起動しなくても反映させる方法ないですか?

wsgiファイルの内容は
import sys, os, bottle
sys.path.append(os.path.dirname(__file__))
import mysite
application = bottle.default_app()
って書いてます
166デフォルトの名無しさん:2013/09/04(水) 23:47:23.68
>>165
http://bottlepy.org/docs/dev/tutorial.html#auto-reloading
bottleはさわったことないからググっただけだけど。
167デフォルトの名無しさん:2013/09/06(金) 02:11:12.92
これからPythonを始めようと思うんですがいい入門書とかありますか?
できればあまり分厚くなくて安めのがいいです。
よろしくお願いします。
168デフォルトの名無しさん:2013/09/06(金) 02:45:12.37
やりたいバージョンも言語経験も述べないので全くの初心者と仮定して
Python 2.7のチュートリアル
http://docs.python.jp/2/tutorial/
紙がいいならここからPDFを落として印刷すればよい
http://sourceforge.jp/projects/pythonjp/releases/
(python-doc-2.7ja1-pdf.zipをクリックして解凍、いくつかあるファイルのうちtutorial.pdfがそれ)
PDFにして164ページなのでこれよりコンパクトな入門書はおそらくない
もしお金を払いたいなら無難に「Pythonスタートブック」でもどうぞ
169デフォルトの名無しさん:2013/09/06(金) 02:59:18.15
ありがとうございます。いろいろ書いていませんでした。すみません。
バージョンは出来れば3.x系がいいです。
言語経験としてはCを基本的にひと通りやってポインタで挫折したクチです。
労力をおかけしてすみません。よろしくお願いします。
170デフォルトの名無しさん:2013/09/06(金) 03:47:40.65
1.やる気を高めよう

を読んだだけでやる気なくなった
171デフォルトの名無しさん:2013/09/06(金) 23:40:18.39
>>169
ポインタで挫折する人は根本的に向いてない人なのでプログラミングそのものを
諦めたほうがいいです
172デフォルトの名無しさん:2013/09/07(土) 12:08:36.10
>>165

どうして以下のスレを活用しないの?


【Python】Python Webフレームワーク総合スレ
http://kohada.2ch.net/test/read.cgi/php/1329996601/
173デフォルトの名無しさん:2013/09/07(土) 13:58:28.68
板キーが気に入らない
174デフォルトの名無しさん:2013/09/07(土) 15:44:48.01
# -*- coding:utf-8 -*-

print "あいうえお"
print u"あいうえお"

をwindowsのコマンドプロンプトで実行した時に,
ユニコード文字列をprintした出力が文字化けしないのは
printが勝手にshift_jisに変換して表示してくれているからですか?
175デフォルトの名無しさん:2013/09/07(土) 16:29:28.04
いいけ
176デフォルトの名無しさん:2013/09/07(土) 16:31:31.62
日本語の扱いで戸惑ったらこちらをどうぞ(バッドノウハウ集で笑える)
ttp://speirs.blog17.fc2.com/blog-entry-4.html
ttp://atomic.jpn.ph/prog/etc/encode.html
ttp://d.hatena.ne.jp/kakurasan/20100330/p1

ttp://pc11.2ch.net/test/read.cgi/tech/1217836194/339
339 :デフォルトの名無しさん:2008/08/23(土) 08:36:00
PythonのUnicodeEncodeErrorを知る
ttp://lab.hde.co.jp/2008/08/pythonunicodeencodeerror.html

よくまとまってた。あとで読む
177デフォルトの名無しさん:2013/09/07(土) 16:37:42.51
>>174
パイプとかり代レクtとか同時に使ってみ
178デフォルトの名無しさん:2013/09/07(土) 18:56:18.76
>>166
reloaderを設定してもだめでした
bottle使わないで
def application(environ, start_response):
start_response('200 OK', [('Content-type', 'text/plain')])
return 'Hello, world'
ってシンプルなコードだけを実行してみて、出力する文字列をいろいろ変えても
やっぱりサーバを再起動するまで反映されません

なぜでしょうか?
179デフォルトの名無しさん:2013/09/07(土) 20:59:28.85
180デフォルトの名無しさん:2013/09/07(土) 21:48:42.12
>>169
171の言うことは気にするな
181デフォルトの名無しさん:2013/09/07(土) 22:25:55.04
>>171じゃないけどポインタに挫折するというのが理解できない
いったいどういう理由なのだろうか
182デフォルトの名無しさん:2013/09/07(土) 23:26:57.12
>>179
設定したら>>178で書いたコードは再起動なしで反映されました。
ですが、bottleのほうはサーバを再起動しないと反映されませんでした。

コードをうpしたので見ていただけませんか
wsgiファイル http://codepad.org/ykFzl3Cn
app.py http://codepad.org/FrzPXOvp
183デフォルトの名無しさん:2013/09/07(土) 23:45:22.78
>>176
>>177
わかりました!ありがとうございます!
184デフォルトの名無しさん:2013/09/07(土) 23:59:38.08
>>182
ソースファイルを書き換えたらwsgiファイルをtouchしろ
185デフォルトの名無しさん:2013/09/08(日) 12:14:38.42
# 最小値iから最大値mまでの整数で
# 長さk分のリストを二次元リストを作る場合
# こういう書き方しか僕にはかけないのですが、他にどういう書き方ができるか教えてください

a = []
i = 0
m = 9
k = 3
while m > i:
a.append(list(range(i, i+k)))
i += k
print(a) # [[0, 1, 2], [3, 4, 5], [6, 7, 8]]
186デフォルトの名無しさん:2013/09/08(日) 12:28:41.38
Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> [[3*n+m for m in range(3)] for n in range(3)]
[[0, 1, 2], [3, 4, 5], [6, 7, 8]]
>>>
187デフォルトの名無しさん:2013/09/08(日) 12:30:30.85
>>> i, m, k = 0, 9, 3
>>> [list(range(x, x+k)) for x in range(i, m, k)]
[[0, 1, 2], [3, 4, 5], [6, 7, 8]]
188デフォルトの名無しさん:2013/09/08(日) 12:50:27.89
>>185-187
便乗ですいません
値がintじゃなくてstringで代入する場合はどうするのでしょうか?
189デフォルトの名無しさん:2013/09/08(日) 13:20:34.95
map
190デフォルトの名無しさん:2013/09/08(日) 13:47:55.20
[[str(3*n+m) for m in range(3)] for n in range(3)]
191デフォルトの名無しさん:2013/09/08(日) 18:17:54.66
mylist = ["a", "a", "a", "a", "a"]
リストの中身が全部同じ値同じ型かどうかチェックする書き方がわかりません

こんな感じにかいたんですけど、なんかPHPerくさい
temp = mylist[0]
for i in mylist:
if temp != i:
print("違います")
192デフォルトの名無しさん:2013/09/08(日) 18:25:27.86
パッと思いつくのはこれか
len(set( ["a", "a", "a", "a", "a"])) == 1
True
193デフォルトの名無しさん:2013/09/08(日) 18:34:29.21
192よりこっちを思いつくべきだった
>>> all(mylist[0] == n for n in mylist)

不勉強やな自分
194デフォルトの名無しさん:2013/09/08(日) 18:34:54.62
Mathematica なら

> Apply[Equal, mylist]
.
って書くんだけど。

Python にリストの要素の Equal を調べる関数ってある?
195デフォルトの名無しさん:2013/09/08(日) 18:36:11.37
while True:
for i in range(0, 10):
if 0 == i:
break

forの中からwhileをぬけたいんですが
こういうときはどうしたらいいですか?
196デフォルトの名無しさん:2013/09/08(日) 18:42:04.31
loop = True:
while loop:
for i in range(0, 10):
if 0 == i:
loop = False
break

野暮ったいけどこれしかない
バッドノウハウを知れば他のやり方も見つかるだろう
197デフォルトの名無しさん:2013/09/08(日) 18:44:06.71
>>194
Equalって2項演算じゃないの?
listに適用すると引数で何が入ってくるんだ?
198デフォルトの名無しさん:2013/09/08(日) 18:45:06.84
break 2見たいな感じでループをぬけられる実装じゃないのかPYTHON
199デフォルトの名無しさん:2013/09/08(日) 18:46:21.05
うむそういう仕様は存在しない
200デフォルトの名無しさん:2013/09/08(日) 18:49:14.27
try ... except
で囲って
raise
201デフォルトの名無しさん:2013/09/08(日) 18:52:01.91
>>197
リストに適用、というか、

Mathematica の Apply は第2引数のヘッダを第1引数に書き換える関数。

いまの場合、

List["a", "a", "a", "a", "a"] → Equal["a", "a", "a", "a", "a"]

なので、Equal の引数はリストではない。

"a" == "a" == "a" == "a" == "a"

って書き方は Python でもあるでしょ。
202デフォルトの名無しさん:2013/09/08(日) 18:56:37.74
あーはいはい
そうなると関数はありません、って回答に
203デフォルトの名無しさん:2013/09/08(日) 19:06:45.44
myEqual みたいな関数を作れば >>194 みたいに書けるけど、
それだと長くなっちゃうわな。
204デフォルトの名無しさん:2013/09/08(日) 19:33:29.54
>>186
こういう書き方はなんていう名前で呼ばれてますか?
マニュアルのどこをみたら載ってますか?
205デフォルトの名無しさん:2013/09/08(日) 19:55:51.75
>>204
っリスト内包表記
206デフォルトの名無しさん:2013/09/08(日) 20:24:14.55
>>201
numpy を使っていいなら
こんな感じにできるけど?


>>> import numpy as np
>>> xs = np.array(['a']*5)
>>> all(xs==xs[0])
True
207デフォルトの名無しさん:2013/09/08(日) 20:41:42.28
>>205
ありがとうございます
208デフォルトの名無しさん:2013/09/08(日) 20:53:14.01
>>184
できませんでした!
209デフォルトの名無しさん:2013/09/08(日) 20:56:21.88
馬鹿には無理
210デフォルトの名無しさん:2013/09/08(日) 20:59:21.33
諦めて開発時は開発用のサーバー使え
211デフォルトの名無しさん:2013/09/08(日) 21:03:46.99
Pythonで作られた国産サイトの一覧ってないですか?
212デフォルトの名無しさん:2013/09/08(日) 21:20:50.44
ないです
213デフォルトの名無しさん:2013/09/08(日) 21:25:43.71
この手の一覧を得て何に使うんだろう
稟議書に書くのかと思ったけどGoogleとDropBoxを挙げとけば実績厨はとりあえず黙るよな
214デフォルトの名無しさん:2013/09/08(日) 21:26:40.81
YoutubeはがっつりPython使ってる
まあGoogleのくくりに入れていいけど
215デフォルトの名無しさん:2013/09/08(日) 21:26:42.89
GoogleはJavaとGoじゃなかったっけ
216デフォルトの名無しさん:2013/09/09(月) 08:36:16.27
java と c
217デフォルトの名無しさん:2013/09/09(月) 09:01:19.17
C++ Java Pythonじゃないの?
Google3大言語って変わったのけ?
218デフォルトの名無しさん:2013/09/09(月) 09:22:48.90
scala
219デフォルトの名無しさん:2013/09/09(月) 12:02:29.59
おまえらって
本当に適当だな・・
220デフォルトの名無しさん:2013/09/09(月) 12:04:35.15
きっちりしてない方が変化に強いもんよ
221デフォルトの名無しさん:2013/09/09(月) 12:13:58.60
Google純正のGo用Guiライブラリはまだですか?
222デフォルトの名無しさん:2013/09/09(月) 12:16:19.91
指定したウィンドウの左上を座標0: 0としてマウスでクリックできるマクロライブラリ
クロスプラットフォームで動く(WindowsとUbuntuとMacで動けばOK)ライブラリはありませんか?
223デフォルトの名無しさん:2013/09/09(月) 16:03:05.65
wx
224デフォルトの名無しさん:2013/09/09(月) 21:38:03.80
qt
225デフォルトの名無しさん:2013/09/09(月) 23:06:56.24
if __name__ == "__main__":
これってなんですか?絶対書かないといけないやつですか?
226デフォルトの名無しさん:2013/09/09(月) 23:17:50.24
たまに
r"aaa"
みたいにrがつくのをみるのですがこれはなんですか?
227デフォルトの名無しさん:2013/09/09(月) 23:22:48.99
ちったあググりなさいよ。
228デフォルトの名無しさん:2013/09/09(月) 23:36:51.62
keti
229デフォルトの名無しさん:2013/09/10(火) 00:06:54.54
raw string
230デフォルトの名無しさん:2013/09/10(火) 00:07:32.59
if __name__ == "__main__":
はそのままぐぐれ
r""はpython raw stringでぐぐれ
231デフォルトの名無しさん:2013/09/10(火) 01:30:26.34
import numpy as np
x = np.array([])
for line in open('file', 'r'):
a = line.split()
b = np.array([a[2], a[4], a[0]])
x = np.vstack(x, b)

こんな感じで空のarray xにvstackで要素を追加していきたいんですが。
当然ながら
array dimensions must agree except for d_0
って怒られます。

いったんlistにしてdstackするしか無いんでしょうか?
232デフォルトの名無しさん:2013/09/10(火) 01:42:08.42
よくわからんけど、一度全部listで作ってからarrayに変換した方が速そう
233デフォルトの名無しさん:2013/09/10(火) 02:38:52.59
>>231
vstackの引数はミス?
numpyは使った事ないが
リファレンス読む限りじゃ最初を
x = np.zeros((0,3))
とかにすれば良いんでない?
234デフォルトの名無しさん:2013/09/10(火) 04:18:06.73
>>233
vstackの引数はミスですね。
()が足りませんでした。

numpy.zeros((0,3))
で解決しました。
shapeに0なんて有りなんですね。
ありがとうございます!
235デフォルトの名無しさん:2013/09/10(火) 10:36:56.04
a = b"aaaaaaaaa"
これを
str(a)
で文字列に変換できないのは何でですか?
a.decode()
ってやるの面倒くさいので
str()にやってもらいたいんです
236デフォルトの名無しさん:2013/09/10(火) 11:14:19.80
エラー読めば分かるだろ
少しは考えろ
237デフォルトの名無しさん:2013/09/10(火) 11:14:53.92
>>235
お前みたいな馬鹿には使ってほしくないからじゃね
238デフォルトの名無しさん:2013/09/10(火) 11:49:33.45
"""\u"""
とだけ書いたpyを実行すると
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in positio
n 0-1: truncated \uXXXX escape

とエラーがでるのですが
これは\uはコメント内で使用してはいけない文字列ということなのでしょうか?
\t\s\a等は大丈夫そうでしたが\Uは駄目でした 他にもありますか?
win7sp2 python3.3です
239デフォルトの名無しさん:2013/09/10(火) 11:49:52.82
**{"a":"100"}
この**は何を意味してるのかおしえて
240デフォルトの名無しさん:2013/09/10(火) 11:50:29.83
python3.3のマイナーバージョンもかけや
241デフォルトの名無しさん:2013/09/10(火) 12:23:30.61
>>238
print("""\u99ac\u9e7f""")
242デフォルトの名無しさん:2013/09/10(火) 12:35:23.69
2系じゃ問題ないけど3系ではエラーになる
243デフォルトの名無しさん:2013/09/10(火) 22:11:30.66
普通にバグじゃないの
コメント内に\UserDir\fileDir\とかあるだけで止まるし
#で書いて回避か
244デフォルトの名無しさん:2013/09/10(火) 22:14:54.99
バグじゃねえよw
2系でもu"""\u"""は同じエラーになる
245デフォルトの名無しさん:2013/09/10(火) 22:33:46.63
今手元にあるの2.6.6しかないが通るぞ?
246デフォルトの名無しさん:2013/09/10(火) 22:44:18.67
3系でもbつければ通る
後は分かるな?
247デフォルトの名無しさん:2013/09/10(火) 23:01:40.63
>>238,243
コメントと文字列間違えてない?
Python では # ... がコメントで """...""" や '''...''' は文字列

>>239
foo(**{"a": "100"}) で foo(a="100") と同じ
248デフォルトの名無しさん:2013/09/10(火) 23:01:55.77
バイトとストリングの違いを詳しく!!!!
249デフォルトの名無しさん:2013/09/10(火) 23:15:44.02
たまにあるけど複数行のコメントアウトは"""だよって紹介してるの
を見るといくら簡易的な紹介でもなあとおもう
250デフォルトの名無しさん:2013/09/10(火) 23:44:41.07
2.7.4 ではエラー出たよ
251デフォルトの名無しさん:2013/09/11(水) 00:08:53.12
2.7.3では出ないな
252デフォルトの名無しさん:2013/09/11(水) 00:30:59.19
エラーが出る人は
from __future__ import unicode_literals
を付けてるとか?
253デフォルトの名無しさん:2013/09/11(水) 02:04:12.52
今何の問題もないドキュメンテーション文字列も将来エラーになる可能性があるってことか
254デフォルトの名無しさん:2013/09/11(水) 02:07:24.41
全然違う
255デフォルトの名無しさん:2013/09/11(水) 02:42:14.05
ドキュメンテーション文字列がただの文字列だと
知らないまま書いてたら今は無事でも評価法が
変更になったとき問題が起こるだろうね
コメントのような聖域じゃないからね
256デフォルトの名無しさん:2013/09/11(水) 07:19:01.45
ドキュメンテーション文字列をbyteで書くな馬鹿、でFA
257デフォルトの名無しさん:2013/09/11(水) 08:19:04.64
複数行コメントアウトの廃止って他の言語に広がらないね
インデントは採用されてるのに
258デフォルトの名無しさん:2013/09/11(水) 08:35:51.57
複数行コメントのネストは出来ないのか
259デフォルトの名無しさん:2013/09/11(水) 19:25:10.85
Python3.4の話題はどこでやってるの?
260デフォルトの名無しさん:2013/09/11(水) 19:47:30.19
本スレで
261デフォルトの名無しさん:2013/09/11(水) 22:49:42.64
windows+python3.3用のpycurlってないですか?
262デフォルトの名無しさん:2013/09/12(木) 10:25:22.20
Rubyのbandlerのようなのを教えてください
263デフォルトの名無しさん:2013/09/12(木) 11:27:52.25
>>262
virtualenv pip

ggrks
264デフォルトの名無しさん:2013/09/12(木) 11:33:28.13
俺、まだ2.7使ってる
みんな3に移行した?
265デフォルトの名無しさん:2013/09/12(木) 12:06:05.78
pipはgemであってbandlerの役割ではない
266デフォルトの名無しさん:2013/09/12(木) 12:14:47.46
両方使ってるわ
なぜ1つのバージョンに縛られる必要があるんだ
1つしか記憶できないのか?
267デフォルトの名無しさん:2013/09/12(木) 12:15:53.28
3.4が出るまであと4ヶ月
268デフォルトの名無しさん:2013/09/12(木) 12:23:34.34
3.4は更新内容が微妙だから様子見
269stee:2013/09/12(木) 13:35:49.35
俺もまだ2,7で止まってる。
270stee:2013/09/12(木) 13:48:50.22
お前ら超初心者の時、pythonの本買って勉強した?
271デフォルトの名無しさん:2013/09/12(木) 14:03:00.47
debianはバカだから未だに2.7
272デフォルトの名無しさん:2013/09/12(木) 14:06:08.08
>>270
だまされて
初めてのPython
買っちゃった
ネットより情報少なかった
273デフォルトの名無しさん:2013/09/12(木) 14:24:50.69
>>265
とっていってんだろ virtualenv だけで出来ないだろ
加えるなら requirements.txt
274デフォルトの名無しさん:2013/09/12(木) 14:25:50.72
>>272
ネットより情報量多い本って…
275デフォルトの名無しさん:2013/09/12(木) 14:40:27.36
272>>
ドンマイww
276デフォルトの名無しさん:2013/09/12(木) 15:49:43.60
2系使ったこと無いや
277デフォルトの名無しさん:2013/09/12(木) 15:53:52.67
for i in range(100000000)
pythonの仕様上どうなのかわかんないんですが、こういう場合ってメモリ食いますか?
yieldを使ったほうが良いですか?
278デフォルトの名無しさん:2013/09/12(木) 16:03:09.92
>>277
Python3なら食わない
Python2だと食うから、rangeではなくxrangeを使う
279デフォルトの名無しさん:2013/09/12(木) 16:10:02.80
pyconってustreamで見れる?
280デフォルトの名無しさん:2013/09/12(木) 18:58:51.40
>>279
ヒント: スポンサー様
281デフォルトの名無しさん:2013/09/12(木) 19:16:00.47
去年の経緯からして見るようなもんねえから昼寝しとけ
282デフォルトの名無しさん:2013/09/13(金) 02:05:31.17
英語の勉強のために聞いとく
283デフォルトの名無しさん:2013/09/13(金) 14:09:26.03
長文すみません
VBSで今まで作ったツールをPyhtonの勉強もかねて変換してます。
シフトJIS漢字扱いついて質問があります。
lower()/upper()で文字化けが出てます。
upper()をすると"フ"(0x8374)が"サ"(0x8354)になります
lower()をすると"ス"(0x8358)が"べ"(0x8378)になります
InFileName = u"AbCdフリースタイル1234Abc"
にすれば文字化けしませんが入力がシフトJISのファイルなどを直接扱いたいです。
InFileName = InFileName.encode('utf-8')はエラーになります。
InFileName = unicode(InFileName, 'utf-8')
UnicodeDecodeError: 'utf8' codec can't decode byte 0x83 in position 4: invalid s
tart byte

動作環境
Python 2.7.4 (default, Apr 6 2013, 19:54:46) [MSC v.1500 32 bit (Intel)] on win32
#
# coding: Shift_JIS
if __name__ == "__main__":
InFileName = "AbCdフリースタイル1234Abc"
print "InFuleName: " + InFileName
print "InFuleNameL: " + InFileName.lower()
print "InFuleNameH: " + InFileName.upper()

結果
C:\>test.py
InFuleName: AbCdフリースタイル1234Abc
InFuleNameL: abcdフリーベタツル1234abc
InFuleNameH: ABCDサリースタイル1234ABC
284デフォルトの名無しさん:2013/09/13(金) 17:09:50.21
いったんUTF-8に変換するしかないんじゃないの
そして出力前にSJISに戻す
285デフォルトの名無しさん:2013/09/13(金) 19:38:59.91
>>283
Python3でもいいなら、ファイルの入出力時以外は文字コード気にすることなく文字列操作できるよ
入出力時にエンコード指定するだけ。

#入力
with open(fname, 'r', encoding="shift_jis") as f:
  data = f.read()

#好きな処理
data = data.lower()

#出力
with open(fname + '.new', 'w', encoding="shift_jis") as f:
  f.write(data)
286デフォルトの名無しさん:2013/09/13(金) 20:12:40.17
馬鹿には無理
287デフォルトの名無しさん:2013/09/13(金) 20:33:57.55
>>283
その例だとファイル名だかファイル内容だかはっきりしないが
とりあえず日本語をあれこれするならunicodeオブジェクトにするってことで
最後のアプローチは間違ってないが引数が違う、変換元を指定するのでsjis

print InFileName.decode('sjis').lower().encode('sjis')

しかしなんとも迂遠なので

import sys
reload(sys)
sys.setdefaultencoding('sjis')

とすればdecodeの引数や出力時のencodeは省略できる、が…
煩わしく思うなら何もせずともシステムのエンコードが設定されていて
デフォルトの文字列がstr(bytes)ではなくunicodeになってる3を使ってください

そしてファイル内容ならioモジュールのopenを使えば2、3共に同じコードで入出力できます

import io
with io.open(InFileName,encoding='sjis') as f:
  f.read()#unicodeが返ってきます

ちなみにこの時指定するファイル名もunicodeが望ましいです(※UTFじゃないよ

今回はWindowsということなのでsjisよりもcp932、
あるいはシステムのキャラクターセットを表すmbcsの方が良いかもしれません
288デフォルトの名無しさん:2013/09/13(金) 21:16:08.00
pythonって英語の勉強にも何の?
289デフォルトの名無しさん:2013/09/14(土) 02:03:17.13
なる
290デフォルトの名無しさん:2013/09/14(土) 14:00:25.96
pyconは金儲けっぽくてなんかやだな
ライブストリーミングやってくれないから明らかに金儲けくさい
phpconは無料でustreamで流してくれるのに
291デフォルトの名無しさん:2013/09/14(土) 14:09:07.84
ライブ配信も終わったセッションも流してるよ
http://apac-2013.pycon.jp/ja/
292デフォルトの名無しさん:2013/09/14(土) 15:08:36.99
293デフォルトの名無しさん:2013/09/14(土) 22:07:44.00
今回も断固geyでも呼んだんですか
294デフォルトの名無しさん:2013/09/14(土) 23:37:44.57
数万点のプロットを軽快に扱いたいんですが、
Matplotlib以外に選択肢ありませんか?

Matplotlibは使ってみたけど重くて…
295デフォルトの名無しさん:2013/09/15(日) 00:23:49.94
まず書き方を見なおせ
matplotlib はまともなコードを書けない奴が書くと糞遅い
pastebin かなんかに貼ってみれば誰か教えてくれるよ
296デフォルトの名無しさん:2013/09/15(日) 02:42:50.80
WSGIアプリケーションでContent-Dispositionを扱う際、
PEP3333のLatin-1制限を回避するうまい方法は有りますでしょうか。

RFC2231で返してNginxで変換かけるモジュールを書く位しか思いつかない…
297デフォルトの名無しさん:2013/09/15(日) 03:07:13.11
>>295
具体的に何やると遅くなるの?
298デフォルトの名無しさん:2013/09/15(日) 12:31:42.78
おれ・・・・Pythonが好きです!!!!!!!
299デフォルトの名無しさん:2013/09/15(日) 12:43:29.75
俺も
300デフォルトの名無しさん:2013/09/15(日) 14:07:20.39
>>296
Content-Disposition使わずにファイルを書き出して、それを落とさせる。
ていうか、RFC無視しないといけないような実装はあまりよくないと思う
301デフォルトの名無しさん:2013/09/15(日) 19:43:58.67
>> 300
なるほど。 特定のURLパターンにNginxでContent-Disposition: attachmentと
Content-Type: application/octet-stream付けてそこにsymlinkで行けそうですね。

ありがとうございます。
302デフォルトの名無しさん:2013/09/16(月) 08:02:12.62
dict_a= dict()
dict_a[s][t][u]= 123
のようなことをしたいときに、簡単な方法はないでしょうか。今は、
if s not in dict_a: dict_a[s]= dict()
if t not in dict_a[s]: dict_a[s][t]= dict()
とか書いていて、もう少し簡潔なやり方があれば。
303デフォルトの名無しさん:2013/09/16(月) 08:36:42.23
>>302
collections.defaultdict
304302:2013/09/16(月) 09:18:10.03
from collections import defaultdict
def mydict(): return defaultdict(mydict)
dict_a= defaultdict(mydict)

としたら

dict_a['A']['B']= 2
dict_a['X']['Y']['Z']=3

とか、できるようになりました。ありがとうございました。
305デフォルトの名無しさん:2013/09/16(月) 10:17:56.84
Pythonがwebsocketに対応したのってバージョンいつぐらいかわかりませんか?
306デフォルトの名無しさん:2013/09/16(月) 10:20:38.91
いつ対応したのかこっちが聞きたいわ
未来人か君は

それともpypiのサードパーティライブラリの話をしてるのか?
307デフォルトの名無しさん:2013/09/16(月) 10:24:46.28
tornadoはwebsocketに対応してるんですよ
なのでpythonの標準機能でwebsocketに対応してんです
308デフォルトの名無しさん:2013/09/16(月) 10:28:30.60
ああそういう意味なら
WebSocketはTCPスタック上で動いているので
TCPソケットが実装されてればWebSocket自体はサポートされるだろう

ということでPython1.xでも君が言う「サポート」はしているはずだ
309デフォルトの名無しさん:2013/09/16(月) 13:11:28.03
それが分ったところで大した意味があるのかな〜。
だってws4pyを初めとして、対応してるの古くて2.6くらいじゃん。
まさか自前でRFC6455?実装するの?
310デフォルトの名無しさん:2013/09/16(月) 14:00:21.31
Pythonをインストールした直後の状態でimportして即使えるかどうかを聞いてるんだと思ったがな
念のため言っておくと、今のところそんなバージョンは無い
311!ninja:2013/09/17(火) 18:07:42.16
11%4ってどんな意味になってんの?
初心者すぎて話にならんかもしらんが教えて給うm(_ _)m
312デフォルトの名無しさん:2013/09/17(火) 18:51:21.23
11 を 4 で割った余り
313デフォルトの名無しさん:2013/09/17(火) 19:19:39.79
記号だけを検索するのってけっこうめんどいんだよな。
314デフォルトの名無しさん:2013/09/17(火) 19:25:05.94
283です。
285,287さん回答有難うございます。
入れるを2.xにするか3.xにするか悩んで
サンプルの多そうな2選んだのが敗因でしょうか
まずは287さんの
print InFileName.decode('sjis').lower().encode('sjis')で希望どうりの
結果になったので1段階すすみました。
 これから3をいれてみます。
315デフォルトの名無しさん:2013/09/17(火) 19:46:34.89
ある3DCGレンダラの旧式のマテリアルファイルを現行のフォーマットに変換したいと思い、
検索してみたところこれが出てきました(↓)。
http://www.luxrender.net/forum/viewtopic.php?f=36&t=6396

最後のPostの手順4がいまいちわからないです・・・
ここからPythonスクリプトをDLしてLXMファイルをLBM2ファイルに変換しろとの事なのですが、使い方が分からないのです・・・
一応、Python2.6.5(x86)とPython3.3.0(x64)がインスコ済みです。
よろしくお願いいたします。
316デフォルトの名無しさん:2013/09/17(火) 21:32:38.35
Python限定でお題サイトってありませんか?
317デフォルトの名無しさん:2013/09/17(火) 21:52:35.07
ちょっと考えりゃ分るけど、需要ないんだよね。そういうの。
318デフォルトの名無しさん:2013/09/17(火) 21:55:03.61
>>316俺も知りたい。
319デフォルトの名無しさん:2013/09/17(火) 22:31:28.24
>>315
1. http://src.luxrender.net/lux/raw-file/efea12b366fe/python/lxs_to_lbm2/lxs_to_lbm2.py を DL
2. http://www.dabeaz.com/ply/ply-3.4.tar.gz を DL
3. [2] を解凍して中の ply-3.4/ply を lx2_to_lbm2.py と同じディレクトリにコピー
4. コマンドプロンプトから <python3へのパス> <lxs_to_lbm2.pyへのパス> <入力ファイル> <出力ファイル>

でたぶん動く
320デフォルトの名無しさん:2013/09/17(火) 22:39:51.94
Pythonでこれ使っとけば大丈夫ってフレームワークは
djangoぐらい?
321デフォルトの名無しさん:2013/09/17(火) 22:43:06.06
どうかな〜実績以外ではFlaskに抜かれてると思う
322デフォルトの名無しさん:2013/09/17(火) 22:50:43.61
ええええええ
Bottle勉強してたけど今日からFlaskべんきょうしますわ
323デフォルトの名無しさん:2013/09/17(火) 22:52:37.44
the python challenge http://www.pythonchallenge.com/ ってのは知ってる
324デフォルトの名無しさん:2013/09/17(火) 23:02:55.80
http://www.google.co.jp/trends/explore?q=flask%2Cbottle%2Cdjango#q=flask%2C%20bottle%2C%20django&cmpt=q
これを見るとbottleにほうが人気あるようにみえる
djangoは2013年になんか急激に上がったと思ったら下がった。何があったか?
flask人気なくね?
325デフォルトの名無しさん:2013/09/17(火) 23:08:04.45
笑うところだよな
そりゃbottleが一般的な名詞だからだろ
326デフォルトの名無しさん:2013/09/17(火) 23:09:59.65
フフッてなったw
327デフォルトの名無しさん:2013/09/17(火) 23:10:09.42
>>324
これってPythonでの絞りこみってできてるの?
328デフォルトの名無しさん:2013/09/17(火) 23:11:03.69
せやんな
329デフォルトの名無しさん:2013/09/17(火) 23:11:46.39
330デフォルトの名無しさん:2013/09/17(火) 23:12:29.87
django1.5が出たから急上昇してるんじゃない?3月くらいだったか
331デフォルトの名無しさん:2013/09/17(火) 23:13:18.23
そしてFlaskの作者が「みつひこ」
332デフォルトの名無しさん:2013/09/17(火) 23:13:41.75
>>329
djangoをtypoってるから、再提出な
333デフォルトの名無しさん:2013/09/17(火) 23:14:06.19
あわてんぼうさんめ
334デフォルトの名無しさん:2013/09/17(火) 23:27:25.10
>>319
ありがとうございますー。
やってみたんですが、「<の使い方を誤っています」と表示されるんですが・・・
間にスペースを開けてみたりなんかしてみたのですが、同様に表示されました
335デフォルトの名無しさん:2013/09/17(火) 23:53:49.53
djangoの和訳が古すぎて結局本家見たほうが早い件
336デフォルトの名無しさん:2013/09/18(水) 00:05:26.90
>>334
<python3へのパス> ってあるのは
「python3 インタプリタへのパスをここに指定してください」の意

OS なに使ってるんだかわからないけど
コマンドプロンプトやターミナルの使い方を簡単に調べて
それでもうまくいかなければまた質問して
337デフォルトの名無しさん:2013/09/18(水) 00:28:27.15
http://dl6.getuploader.com/g/dion555/3800/2013-09-18_002349.png
OSはW7.64です。
やっぱり分からないです><
LBM2ファイルが生成されたみたいですが、中身が空でした。
338デフォルトの名無しさん:2013/09/18(水) 00:46:28.67
どうせそのツール何回も使うことになるんだろうから
焦らないでコマンドプロンプトの使い方調べてきなよ
パス、カレントディレクトリ、コマンドと引数の指定方法、リダイレクトあたり
339デフォルトの名無しさん:2013/09/18(水) 01:47:19.48
http://dl6.getuploader.com/g/dion555/3801/2013-09-18_013934.png

リダイレクトについて調べて、やってみたんですが、こう表示されました
何か間違ってるんでしょうか・・・
340デフォルトの名無しさん:2013/09/18(水) 02:11:34.64
>>339
くだすれ以前のレベルだよ
pythonのインストールとコマンドプロンプトの使い方、環境変数の設定の仕方ぐらいは自前で調べてこよう
341デフォルトの名無しさん:2013/09/18(水) 02:24:41.71
初めまして、最近pythonを始めたものです。とりあえずあったら便利なモジュールを作ろうと思い、近くのスーパーの広告を拾ってくるようなものを考えてます。
しかしウェブの画像保存が上手く行きません。保存してもファイルが壊れていると表示されます。何が問題でしょうか?
またあるスーパーの広告はpdf形式みたいなのですが、画像として保存することはできますか?
どうか、よろしくお願いします。
342デフォルトの名無しさん:2013/09/18(水) 02:27:21.09
2.6.5と3.3.0に加え、3.4.0α2をインスコしました
結局何も変わりませんでしたが・・・

ディレクトリの切り替えや環境変数の設定の仕方は一応知ってましたけども、
環境変数を使うよりD&Dした方が早いと思ってたんですが、わざわざ設定して使わなければダメなんでしょうか・・・
343デフォルトの名無しさん:2013/09/18(水) 05:26:05.59
口ごたえする位ならなぜ諦めないの?
344デフォルトの名無しさん:2013/09/18(水) 06:19:51.51
>>341
open() でバイナリモード指定してないとか?
いずれにせよ環境とコード貼ってくれないと答えにくい
もし長ければ codepad.org あたりに貼って
345デフォルトの名無しさん:2013/09/18(水) 07:11:32.99
>>313
最近のGoogleは電卓機能付いてる
346デフォルトの名無しさん:2013/09/18(水) 07:26:43.21
>>342
設定は何も要らん。コマンドプロンプトの使い方調べろって言われただろ
ttp://www.dotup.org/uploda/www.dotup.org4506208.jpg
347デフォルトの名無しさん:2013/09/18(水) 09:27:01.45
>>346
わざわざすみません
LXMファイル自体に問題があったみたいです。(別のLXMファイルで試したところ成功しました)

ご迷惑をお掛けしました。
348デフォルトの名無しさん:2013/09/18(水) 10:12:53.49
>>344
返信ありがとうございます。
環境はwindows7-64bit、python2.7.5-32bitです

コードは

import urllib

url = "http://hoge"
savepath = "net.png"
urllib.urlretrieve( url, savepath)

です。
pngファイルは出来るのですが、壊れていると表示されます。
どうか、よろしくよろしくお願いいたします。
349デフォルトの名無しさん:2013/09/18(水) 11:28:50.33
うちはうまくいっとるで
350デフォルトの名無しさん:2013/09/18(水) 12:32:15.38
>>348
.pngを.txtに変えて中身をのぞいてみろよ
351デフォルトの名無しさん:2013/09/18(水) 12:43:17.85
>>348
ブラウザで右クリックで保存したファイルと
その壊れているファイルを比較するんだ
352デフォルトの名無しさん:2013/09/18(水) 12:55:49.17
pngじゃないものが返ってきてるんだろうな
353デフォルトの名無しさん:2013/09/18(水) 13:32:50.76
>>350
txtファイルは文字化けしてました。あと違うurlで一応画像保存は出来たのですが、スーパーの広告がデジタル広告?みたいな感じでそのurlを指定するとおかしくなるみたいです。
また、それをtxtファイルで保存するとflashプレイヤーのインストールが必要と書かれてました。もちろんブラウザでは広告を見ることは可能です。
この場合、画像保存するのは無理何でしょうか?
354将来ビッグになりたい学生:2013/09/18(水) 13:44:32.55
lambdaを使うときってどういうとき?
355デフォルトの名無しさん:2013/09/18(水) 14:19:01.05
>>354
関数の引数で使い捨ての関数渡したいとき
356デフォルトの名無しさん:2013/09/18(水) 16:00:07.82
ワンライナーにこだわりたいとき
357デフォルトの名無しさん:2013/09/18(水) 16:24:50.37
>>353
テキストファイル以外のファイルを開くときはバイナリエディタを使う
画像の種別を簡易的に調べるには先頭数バイトを見ればいい
http://ja.wikipedia.org/wiki/Portable_Network_Graphics#.E3.83.95.E3.82.A1.E3.82.A4.E3.83.AB.E3.83.98.E3.83.83.E3.83.80

> スーパーの広告がデジタル広告?みたいな感じでそのurlを指定するとおかしく
URL の先にあるのは Flash であって画像そのものじゃない
Python から画像を取得するのは無理ではないけど難しいと思って
358デフォルトの名無しさん:2013/09/18(水) 23:18:36.85
先頭数て何ですのん
359デフォルトの名無しさん:2013/09/19(木) 00:44:27.57
mylynってなんですか?
360デフォルトの名無しさん:2013/09/19(木) 05:10:50.94
クラスとインスタンスで大混乱
クラスを定義する必要無くね?
361デフォルトの名無しさん:2013/09/19(木) 06:11:48.59
シングルトンばっかとか
データよりも手続きのが主体的とか
だとオブジェ志向ってつらいよね
362デフォルトの名無しさん:2013/09/19(木) 09:03:26.20
クラスはメタクラスのインスタンスだから
363将来ビッグになりたい学生:2013/09/19(木) 10:27:31.11
Python3.3から勉強したのでPython2.7は書けないんですが
これはまずいですか?
364将来ビッグになりたい学生:2013/09/19(木) 10:30:15.22
wxPythonってWindowsのPython3.3で使えないのですか?
365将来ビッグになりたい学生:2013/09/19(木) 10:31:01.66
>>355-356
ありがとうございます
lambdaを極めます
366デフォルトの名無しさん:2013/09/19(木) 12:05:28.45
豚になりたいの?
367デフォルトの名無しさん:2013/09/19(木) 16:56:16.31
pyqt5でメッセージダイアログを出したいのですが

def view_box(self):
box = QtWidgets.QMessageBox.question(self
,'aaaaa'
, 'bbbbb'
, QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No
, QtWidgets.QMessageBox.No)

ってやると
Traceback (most recent call last):
File "messageboxsample.py", line 45, in view_box
, QtWidgets.QMessageBox.No
TypeError: QMessageBox.question(QWidget, str, str, QMessageBox.StandardButtons b
uttons=QMessageBox.Ok, QMessageBox.StandardButton defaultButton=QMessageBox.NoBu
tton): argument 1 has unexpected type 'Ui_MainWindow'

ってエラーになります
アドバイスお願いします
368デフォルトの名無しさん:2013/09/19(木) 18:03:30.24
def view_box(self):
box = QtWidgets.QMessageBox.question(None
,'aaaaa'
, 'bbbbb'
, QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No
, QtWidgets.QMessageBox.No)
369デフォルトの名無しさん:2013/09/19(木) 18:11:16.70
あああああありがとうございます
selfを与えないでNoneで動くのはなぜだか分かりませんか前に進めました
370デフォルトの名無しさん:2013/09/19(木) 18:54:00.14
そうか
動いたか
からかってみようと思っただけなんですが
371デフォルトの名無しさん:2013/09/20(金) 13:30:01.59
phpのvar_dumpみたいにリストや辞書を整形して表示したり
オブジェクトの中身を全部見れるのないですか?
pprintはいまいちでした
372デフォルトの名無しさん:2013/09/20(金) 13:30:43.53
これのかわりになるのがほしいんです
for i in dir(self):
print(i)
373デフォルトの名無しさん:2013/09/20(金) 14:00:03.26
instance.__dict__
374デフォルトの名無しさん:2013/09/20(金) 14:01:23.88
375デフォルトの名無しさん:2013/09/20(金) 14:08:36.30
pip install var_dump

from var_dump import var_dump
var_dump(1)

ImportError: No module named '_var_dump

なぜですか?
Python3.3.2
376デフォルトの名無しさん:2013/09/20(金) 14:51:09.08
■質問1

dic = {}
dic['a'] = {"a":1, "b":2}
dic['b'] = {"a":3, "b":4}

for k in dic:
print(dic[k])

実行するたびに並びが違うんですが
{'b': 4, 'a': 3}
{'b': 6, 'a': 5}
{'b': 2, 'a': 1}
だったり
{'a': 1, 'b': 2}
{'a': 5, 'b': 6}
{'a': 3, 'b': 4}
これはなぜですか?
377デフォルトの名無しさん:2013/09/20(金) 14:51:39.14
訂正

dic = {}
dic['a'] = {"a":1, "b":2}
dic['b'] = {"a":3, "b":4}
dic['c'] = {"a":5, "b":6}
378デフォルトの名無しさん:2013/09/20(金) 15:05:04.15
>>376
たしかこれの副作用だったような
http://www.python.org/dev/peps/pep-0412/
まぁ元々dictは順序を保証してないので仕様だね
379デフォルトの名無しさん:2013/09/20(金) 15:07:40.73
順序を保証するほうほうってないですか?
380デフォルトの名無しさん:2013/09/20(金) 15:19:23.57
collections.OrderedDict
381デフォルトの名無しさん:2013/09/20(金) 15:26:27.64
それつかわせていただきます
382デフォルトの名無しさん:2013/09/20(金) 16:18:03.81
bに含まれる値を除外して
aから最大値を求める方法を教えてください

こういう風に書いてみたんですが新たにリストを作成するのが無駄なきがします
a = [1,3,5,7,9]
b = [1,3,9]
c = []
for i in a:
if not i in b:
c.append(i)
print(c) # 5, 7
print(max(c)) # 7
383デフォルトの名無しさん:2013/09/20(金) 16:28:43.87
余計なcを使いたくないならremoveと組み合わせて頑張るとか
普通はsetつかって差を取ると思うけど
max(set(a) - set(b))
384デフォルトの名無しさん:2013/09/20(金) 17:06:07.77
>>375
2系が有効になってるんじゃね?
385デフォルトの名無しさん:2013/09/20(金) 18:45:37.35
>>382
max(x for x in a if not x in b)
386デフォルトの名無しさん:2013/09/20(金) 18:48:16.91
>>383
副作用があるみたいですがこれで乗り切ります
387386:2013/09/20(金) 18:48:51.37
アンカーミス
>>380
388デフォルトの名無しさん:2013/09/20(金) 21:40:26.82
import cgitb; cgitb.enable()
import pymongo

ブラウザからmongodb使いたいんだが
こう書いたファイルを実行してもpymongoが存在しないってエラーが出る
ローカルでは動く
cgi初心者だから知恵を貸してほしい
389デフォルトの名無しさん:2013/09/20(金) 21:53:48.21
一番ありそうなのはローカルユーザーが実行したときと
HTTPdのユーザーが実行したときで環境変数が違う
390デフォルトの名無しさん:2013/09/20(金) 22:42:22.03
sys.path 設定するだけで動いてくれればラッキーだけど
もし動かなかったら動作環境とその設定から調べていかないといけない
http://docs.python.jp/2/library/cgi.html#cgi-unix
391デフォルトの名無しさん:2013/09/20(金) 23:22:24.41
sys.pathもダメだったんだよなあ
動作環境のほうなのか
調べてくる、ありがとう
392デフォルトの名無しさん:2013/09/20(金) 23:25:39.43
1 not in list
とかくのと
not 1 in list
って書くの
どちらが定番ですか?
393デフォルトの名無しさん:2013/09/20(金) 23:30:13.11
前者
394デフォルトの名無しさん:2013/09/21(土) 14:10:10.68
a not is None
とかくのと
not a is None
って書くの
どちらが定番ですか?
395デフォルトの名無しさん:2013/09/21(土) 14:12:31.34
a = (1, 2, 3)

a not is list
とかくのと
not a is list
って書くの
どちらが定番ですか?
396デフォルトの名無しさん:2013/09/21(土) 14:30:46.63
うざいなこいつ
397デフォルトの名無しさん:2013/09/21(土) 15:28:43.60
>>395
どっちも間違い
a = [1, 2, 3]
だとしても間違い。
398デフォルトの名無しさん:2013/09/21(土) 16:56:23.32
c++で作成したdllをpythonで使いたいのですが.
ctypesで出来ますか?
cで作られたdllを呼び出すことは出来たのですが,
namespaceやクラスを使っているときに,どうすればいいのかわからないです.
399デフォルトの名無しさん:2013/09/21(土) 17:11:15.03
できるかできないかで言えばできる
しかし条件があり、C言語の形式でシンボルが可視になっていなければできない
C++でいうなら、extern Cで宣言されている関数しか呼び出すことができない
クラスやnamespaceは使えない
クラスやnamepsaceが使用されていて、かつソースコードに手が出せないのなら
さらにラッパーになるdllを作成することになる
400デフォルトの名無しさん:2013/09/21(土) 17:20:24.99
>>399
ありがとうございます!
ラッパー作ってやってみます.
401デフォルトの名無しさん:2013/09/21(土) 17:27:31.77
>>400
Cythonも調べてみな
402デフォルトの名無しさん:2013/09/21(土) 17:40:56.50
SWIGってのもある
403デフォルトの名無しさん:2013/09/23(月) 11:27:05.54
日本でPythonで有名な人って誰?
404デフォルトの名無しさん:2013/09/23(月) 11:31:21.53
405デフォルトの名無しさん:2013/09/23(月) 21:08:47.07
webbrowserモジュールが存在する意味ってあるんですか?
406デフォルトの名無しさん:2013/09/23(月) 21:38:00.71
requirements.txtの書き方をおしえてください

sample==1.0
でsampleモジュールの1.0をインストールしますが

1.指定したマイナーバージョンより新しいのがあればそれをインストール
たとえばsample==1.*みたいな感じ

2.常に新しいものをインストール
たとえばsample==*みたいな感じ

おしえてください
407デフォルトの名無しさん:2013/09/23(月) 21:44:54.64
408デフォルトの名無しさん:2013/09/24(火) 00:01:21.61
os.renameとかドキュメントに「利用できる環境: Unix、Windows」って書いてあるのがありますが
MacはUnixに含まれている前提で書かれているんですかね?
409デフォルトの名無しさん:2013/09/24(火) 01:23:21.50
OSX持ってないからわからんがまあ動くだろ
とりあえずunixと書いておくか
ぐらいの感覚かと
410デフォルトの名無しさん:2013/09/24(火) 02:09:50.11
>>408
os.renameは動いた。
今まで動かなかったのには当たらなかったから、
概ね動くんじゃないかな。
411デフォルトの名無しさん:2013/09/24(火) 14:31:46.74
print("%d" % a)

print("{}".format(a))じゃなくて
Rubyでいう
a = 12
puts "#{a}"
みたいにダブルクォーテーション内に変数を展開させる方法を教えてください
412デフォルトの名無しさん:2013/09/24(火) 14:46:17.95
http://ideone.com/oMYayl

ファイルを10回書き込みしているんですが
書き込みごとにファイルサイズが反映されません
処理が終了したらファイルサイズが反映されます
なぜですか?
413デフォルトの名無しさん:2013/09/24(火) 15:04:06.54
フラァアアアアアアアッシュ!!!、
414デフォルトの名無しさん:2013/09/24(火) 15:05:01.46
>>411
無い
415デフォルトの名無しさん:2013/09/24(火) 15:11:52.05
flash()は書いてありますけど反映されないです
416デフォルトの名無しさん:2013/09/24(火) 15:20:35.41
>>411
print("%(a)" % locals)
417デフォルトの名無しさん:2013/09/24(火) 15:26:40.61
>>411
print('{a}'.format(**locals()))
Python 3.2以降なら↓の方がいいかも
print('{a}'.format_map(locals()))
418デフォルトの名無しさん:2013/09/24(火) 15:27:04.50
>>415
OS とどうやってファイルサイズを確認したかぐらい書いておくれ
419デフォルトの名無しさん:2013/09/24(火) 15:27:25.27
>>415
手元の Linux だと flush() で書き込んでくれるけどね。
Python 3.3.2
420デフォルトの名無しさん:2013/09/24(火) 15:28:46.69
Windows 7です
秀丸ファイラーで確認しました
ファイルサイズが変わるとすぐに反映されるようになってるので常に最新のファイルサイズが反映されています
421デフォルトの名無しさん:2013/09/24(火) 15:29:42.68
>>411
print("%(a)s" % locals())
422デフォルトの名無しさん:2013/09/24(火) 15:33:00.61
>>420
秀丸ファイラではなく

f.write("a" * 100000)
print("%d\n" % os.stat(f.fileno()).st_size)
f.flush()
print("%d\n" % os.stat(f.fileno()).st_size)

だとどうなる?
423デフォルトの名無しさん:2013/09/24(火) 15:34:08.47
よくわからないんですが
print(1)
f.write("{}\n".format(s))
だと反映されなくて
os.path.getsize("test.txt")
f.write("{}\n".format(s))
みたいに書き込み対象のファイルの情報を得るとファイラーのほうでファイルサイズが反映されます
424デフォルトの名無しさん:2013/09/24(火) 15:35:32.85
>>422
これは反映されません
425デフォルトの名無しさん:2013/09/24(火) 15:39:11.72
>>424
そうじゃなく print() の出力がどうなったか
秀丸ファイラの表示がどうなったかではなく
426デフォルトの名無しさん:2013/09/24(火) 15:39:57.07
printの内容はファイルサイズが増えてます
427デフォルトの名無しさん:2013/09/24(火) 15:51:21.31
ちなみに
s = "a" * 10000
for i in range(10):
f = open("test.txt", "a")
print(1)
f.write("{}\n".format(s))
f.close()
time.sleep(1)

ってやると即時反映されるので、
ここまでを整理すると
ファイルをオープンしてからクローズするまでのバッファがflushしてもファイルに反映されてない状態です
428デフォルトの名無しさん:2013/09/24(火) 16:00:03.03
>>426,427
じゃあ Python がどうこうではなく秀丸ファイラの話ではないか
要は秀丸ファイラがどうやってファイルサイズの変更を監視しているか

ちなみに flush() は C stdio のバッファを OS のカーネルに吐く(ディスクではない)
もし秀丸ファイラが FindFirstChangeNotification() を使ってるなら
flush() したデータがカーネルに留まってるうちはサイズ変更を検知できないだろう
http://msdn.microsoft.com/en-us/library/aa364417(VS.85).aspx
429デフォルトの名無しさん:2013/09/24(火) 16:17:10.94
そうなんですか。。。あきらめます
430デフォルトの名無しさん:2013/09/24(火) 16:22:32.93
いや目的が仕組みを知りたいんじゃなくてファイラに反映させたいのなら
f.flush(); os.fsync(f.fileno()) とか方法はあるよ
431デフォルトの名無しさん:2013/09/24(火) 17:02:05.97
fsyncでディスクに書き込むんですね
勉強になりました

随時ディスクに書き込むのはパフォーマンス悪い?かもしれませんね
432デフォルトの名無しさん:2013/09/24(火) 19:31:58.35
下記のような設定ファイルを読み込み、
変数に格納したいのですが、良い方法が思いつきません。
-------------------------------
aaa {
x1 = y1
bbb {
x2 = y2
}
}
-------------------------------

理想としては [{aaa:[{x1:y1}, {bbb:[{x2:y2}]}]}]のような形にしたいです。
何か良い方法はないでしょうか?
433デフォルトの名無しさん:2013/09/24(火) 19:42:12.95
俺フォーマットなテキストなんか自力で無理やり読む方法しかないに決まってるだろ

既存のコード使いまわしたければ既存のフォーマットで書け
JSONとかyamlとか
434デフォルトの名無しさん:2013/09/24(火) 19:50:59.13
BNF定義できるならC++のboost::spiritとかbisonでパーサモジュールを作成して呼び出して使う

・・・ゴキブリ退治に軍隊呼ぶくらいオーバーコストな気ガス
435デフォルトの名無しさん:2013/09/24(火) 20:48:51.22
yamlは公式パッケージになってもいいとおもうんだ
Rubyだって入れてるから
43657:2013/09/24(火) 21:16:23.04
Windowsのサーバーだと書き込み遅延で困った事あるな。
言語はC#
クライアントの方では試したこと無いが
437デフォルトの名無しさん:2013/09/24(火) 23:11:56.80
その辺はディスクの書き込みキャッシュポリシーの設定によっても全然変わる
438デフォルトの名無しさん:2013/09/25(水) 11:49:21.85
最強IDEがPythonに限り無料

Pythonコミュニティに無償のPython IDE、PyCharm 3.0をお届けします!
http://blog.jetbrains.com/jp/2013/09/25/197
439デフォルトの名無しさん:2013/09/25(水) 12:33:57.64
>>435
yaml も色々バージョンあるからな
python 用なら型情報も含んだのが良いね
440デフォルトの名無しさん:2013/09/25(水) 12:38:11.13
自分専用のPythonファイルがあるんですけど
pipで入れたときみたいにどのディレクトリからもimportできるようにする方法を教えてください
PHPでいうとphp.iniにincludeパスを指定してそこからファイルを検索するみたいな感じみたいなの
441デフォルトの名無しさん:2013/09/25(水) 12:49:04.20
sys.path.append(hoge)
442デフォルトの名無しさん:2013/09/25(水) 12:51:21.84
↑を settings.py に書く
443デフォルトの名無しさん:2013/09/25(水) 12:59:20.65
(python install path)/lib/site-packages/sitecutomize.py

import sys
sys.path.append(hoge)
444デフォルトの名無しさん:2013/09/25(水) 16:22:14.28
それか、VirtualENVとか
445デフォルトの名無しさん:2013/09/25(水) 16:51:23.29
446デフォルトの名無しさん:2013/09/25(水) 18:45:24.57
2ちゃんに書き込めるようになってからpythonの学習曲線があがりました
これもここで質問して回答してくださる先輩方のお力の影です
感謝します
447デフォルトの名無しさん:2013/09/25(水) 18:50:48.50
今できてるところまでのPython3.3.2 日本語ドキュメントのchmどこかに配布されてませんか?
448デフォルトの名無しさん:2013/09/25(水) 19:43:02.66
>>447
HTML版の作り方を参考に自分で作るしかないんじゃね
http://code.google.com/p/python-doc-ja/wiki/HowToBuild
449デフォルトの名無しさん:2013/09/25(水) 23:30:13.18
>>440
site-packages/hoge.pthにパスを列挙
450デフォルトの名無しさん:2013/09/27(金) 21:47:06.44
>>441-445
いろいろあるんですね
試してみます
 ありがとうございます
451デフォルトの名無しさん:2013/09/29(日) 05:57:47.34
Pythonを勉強しております。

class Base():
tests = []
def __init__(self):
self.tests.append(0)
class A(Base):
def __init__(self):
self.tests.append(1)
print self.tests
class B(Base):
def __init__(self):
self.tests.append(2)
print self.tests
A()
B()

このコードでBが[1,2]になる理由がどうもわかりません。
AとBはBaseを継承した別々のインスタンスになると考えているのですが、別々のインスタンスで有るにも関わらずBaseのプロパティを共有している理由はどういうものになるのでしょうか?
文字列などのミュータブルな値を代入すると共有はされませんでした。

またこの場合、配列などのイミュータブルな値でも共有しないようにすることはできないでしょうか?
452デフォルトの名無しさん:2013/09/29(日) 06:01:03.00
class Base():
def __init__(self):
self.tests = []
self.tests.append(0)
453デフォルトの名無しさん:2013/09/29(日) 06:39:01.41
こうすれば分かるかな
>>> A.__dict__
{'__module__': '__main__', '__doc__': None, '__init__': <function __init__ at 0x...>}
>>> Base.__dict__
{'__module__': '__main__', 'tests': [], '__init__': <function __init__ at 0x...>, '__doc__': None}

A.testsでは実際にはBase.tests = Base.__dict__['tests']が参照されてる
B.testsでも同じ
454デフォルトの名無しさん:2013/09/29(日) 07:03:00.61
Rubyはほんと罪つくりだな
455デフォルトの名無しさん:2013/09/29(日) 07:56:22.98
456デフォルトの名無しさん:2013/09/29(日) 09:35:15.69
>>451 は RUBY 使いなのか?
457デフォルトの名無しさん:2013/09/29(日) 09:38:44.49
なんかようか?
458デフォルトの名無しさん:2013/09/29(日) 09:45:53.41
Ruby 使いならクラス定義の直下に変数定義書いたらインスタンス変数になるとは思わないだろう
それにプロパティって用語はほとんど使わないから C# とかじゃないか
459デフォルトの名無しさん:2013/09/29(日) 11:40:47.55
Javaラー鴨試練
460451:2013/09/29(日) 14:54:42.22
ありがとうございました。

プロパティの宣言をclass内で宣言するのと、メソッドにself.testsで宣言することに違いがあることを理解しておりませんでした。
Baseのコンストラクタでself.testsを宣言し、AとBからBaseのコンストラクタを呼ぶとAとBで別のtestsができるのは、コンストラクタが実行される際にtestsが作成されるからということでしょうか?

私がclassの継承を理解できていないのか、その場合でも上のコードでAとBで同一のtestsになる理由が理解できません。
これはBaseクラスは一つとし、Aで継承した際にAにはBaseのリファレンスのようなものがはられ、Bで継承した際にも同じようにBaseのリファレンスのようなものになり、testsはミュータブルな値のため全ての継承クラスで共有されているということでしょうか?
それとも、継承時にAとBにはBaseのコピーが割り当てられ、BaseでミュータブルなtestsはAとBにも同じ宛先の参照がコピーされるためということでしょうか?

Pythonの変数は全てリファレンスという部分に少々頭がついていけていないのかもしれません。
461デフォルトの名無しさん:2013/09/29(日) 15:08:47.98
462デフォルトの名無しさん:2013/09/29(日) 15:44:20.94
>>460
Pythonでプロパティといえばこっち
http://docs.python.jp/2/library/functions.html#property
463デフォルトの名無しさん:2013/09/29(日) 16:03:47.32
python3.3
pep8にクラスメソッドの第一引数にはclsを使えってありますが
selfとclsの違いってなんですか?これはドキュメントのどこのページに書いてあるのか教えてください
あとselfを引数に下コードをpep8でチェックしても警告が出ないのは、selfを使ってもいいからでしょうか?
464デフォルトの名無しさん:2013/09/29(日) 16:16:01.30
>>460
そもそもプロパティって普通アクセサを指すと思うが…
Pythonはある種プロトタイプベースのような実装なので
現クラスで見つからなければ継承を遡っていきます
http://docs.python.jp/2/howto/descriptor.html
あとはこの辺も読んでおくと良いかもしれません

>>463
言語的な制約はないただの慣例のはず
465デフォルトの名無しさん:2013/09/29(日) 16:17:27.18
名前が違うだけで別に機能に差があるわけではありません
従ってドキュメントに「なぜ」は記載されていません。

なぜそれを薦めるかと言えば
ネーミング規約を使用する理由がそのまま当てはまります。
つまり共通認識を有効にするためです。
初めてPEP8を呼んだ頃ではまだピンと来ないかもしれません。
466デフォルトの名無しさん:2013/09/29(日) 16:34:04.36
>>63
self も cls もただの名前
slf とか s とか c でもなんでもいい
467デフォルトの名無しさん:2013/09/29(日) 16:39:46.97
良く釣れますな
468デフォルトの名無しさん:2013/09/29(日) 17:54:06.70
つまり第一引数は自分の好きな名前を指定できるってことで合ってますか?
469デフォルトの名無しさん:2013/09/29(日) 18:34:14.17
別のどの引数だって自分の好きな名前付けてかまいませんよ
自己顕示欲旺盛ならご自分の名前でもつけれれてはどうでしょう
470デフォルトの名無しさん:2013/09/29(日) 18:41:19.06
おでかけですか?
471デフォルトの名無しさん:2013/09/29(日) 19:22:12.78
>>470
やめたげてww
472デフォルトの名無しさん:2013/09/29(日) 19:28:53.70
れれれのれー
473デフォルトの名無しさん:2013/09/29(日) 22:06:35.17
PyQTの質問です
フォームQtWidgets.QListViewを置いて、データをセットしてある状態です

self.listView.keyPressEvent = press1

def press1(self, e):
if e.key() == keyCode.Key_Return:
print("Enter Key")

ってやると、Enter KeyをおしたらEnter Keyって出力するんですが
UP/Downキーでリストのインデックスを移動できなくなりました
Enter Key以外は何もいじりたくないのですが何か良い方法を教えてください

別の方法で
if e.key() == keyCode.Key_Up
# インデックスを1下げる処理
if e.key() == keyCode.Key_Down
# インデックスを1あげる処理
というのも考えたんですがググってもこの方法がわかりません
こちらもアドバイスお願いします
474デフォルトの名無しさん:2013/09/29(日) 22:41:33.47
QListView.keyPressEvent(self.listView, e) は?
475デフォルトの名無しさん:2013/09/30(月) 00:12:00.97
>>474
>QListView.keyPressEvent(self.listView, e) は?
これはどういうことでしょうか?

朝からずっと調べてたんですがお手上げです
実行できるコードを載せるのでアドバイスお願いします
http://ideone.com/sxoPGg
476デフォルトの名無しさん:2013/09/30(月) 00:28:17.04
メソッドオーバーライドしてんだから super のイベント呼び出せよ
477デフォルトの名無しさん:2013/09/30(月) 09:00:58.93
馬鹿には無理
478デフォルトの名無しさん:2013/09/30(月) 09:39:08.82
>>475
pyuicでuiファイルから変換したソースを直接書き換えちゃだめだよ
あれは別ファイルから呼び出して使うもんだ
http://pyqt.sourceforge.net/Docs/PyQt4/designer.html
479デフォルトの名無しさん:2013/09/30(月) 12:32:30.18
>>478
便乗で質問させてください
pyuicで変換したソース、designer.pyとして
起動用のファイルをbootstrap.pyとしたとき
designer.pyにコードを追加する場合はbootstrap.pyに書くんですよね?
どうやってコードを書いていくんですか?
480デフォルトの名無しさん:2013/09/30(月) 12:38:13.18
去年の pycon で初心者は uic 使うなって言ってたのは真実だな
481デフォルトの名無しさん:2013/09/30(月) 12:42:14.29
>>479
リンク先に書いてあるだろ
英語が読めない?ソース嫁
482デフォルトの名無しさん:2013/09/30(月) 13:02:54.12
引用すると

from PyQt4.QtGui import QDialog
from ui_imagedialog import Ui_ImageDialog

class ImageDialog(QDialog):
def __init__(self):
QDialog.__init__(self)

# Set up the user interface from Designer.
self.ui = Ui_ImageDialog()
self.ui.setupUi(self)

拡張する場合はどうやってメソッドとかそういうのを書いていくんでしょうか?
483デフォルトの名無しさん:2013/09/30(月) 15:19:40.91
484デフォルトの名無しさん:2013/09/30(月) 16:18:13.49
>>482
自分で考えて分からなければ>>480
485デフォルトの名無しさん:2013/09/30(月) 16:53:51.16
うぜえ
486デフォルトの名無しさん:2013/09/30(月) 17:12:58.68
こんなときに便利な言葉
馬鹿には無理
487デフォルトの名無しさん:2013/09/30(月) 23:37:24.68
>>478
なるほど、一時中断して別ファイルから呼び出すように修正してみます
488デフォルトの名無しさん:2013/10/01(火) 13:24:07.61
Python3.2で撤廃されたメソッドがPython3.3でも残ってるのはなぜですか?
例えばxml.etree.ElementTreeのgetchildrenなど
489デフォルトの名無しさん:2013/10/01(火) 13:37:53.58
>>488
翻訳の誤り。
原文は "Deprecated" なので、「3.2が出た時点で撤廃予定・非推奨になりました」ってこと。
Sphinxの翻訳の問題で、Python-doc-jaの翻訳の問題ではないはず。
490デフォルトの名無しさん:2013/10/01(火) 14:27:52.60
>>488
そのうち削除されるんじゃない?
http://bugs.python.org/issue13248

ちなみに Python3.3 はデフォルトで ET の C 実装を呼ぶようだけど
そっちは -Wd つけても DeprecationWarning を吐いてくれないみたい
491デフォルトの名無しさん:2013/10/01(火) 15:35:23.88
phpのphp.iniでエラー出力レベルのE_STRICTみたいに
非推奨なコードを使ったらを使ったら警告を出すようにする方法ありませんか?
492デフォルトの名無しさん:2013/10/01(火) 15:59:45.17
import PEP8
493デフォルトの名無しさん:2013/10/01(火) 17:02:50.77
>>488
急に使えなくなると困るので、使用を非推奨にして移行期間を取っています
494デフォルトの名無しさん:2013/10/01(火) 17:03:48.49
3.3と3.4の違いはどこに書いてありますか?
495デフォルトの名無しさん:2013/10/01(火) 17:06:58.64
python whats new 3.3 3.4 とかでぐぐる
496デフォルトの名無しさん:2013/10/01(火) 21:19:29.62
dir(obj)
ってやると
__xxx___っていうのとxxxっていうのがありますが(xxxはアルファベットの伏字)
この違いはドキュメントのどこに載ってますか?

あと__xx___を覗いてxxxの一覧だけが取得したいのですが方法を教えてください
497デフォルトの名無しさん:2013/10/01(火) 21:42:09.31
498デフォルトの名無しさん:2013/10/02(水) 14:22:30.14
>>272
俺も買って最後まで勉強したけど、ほんと失敗だった
オライリーだからいい本だろうと思い込んでた
amazon.comのレビューをちゃんと見るんだった
499デフォルトの名無しさん:2013/10/02(水) 15:20:57.76
>>498
あなたの騙された本は

初めての Python ですか?
http://www.amazon.co.jp/dp/4873113938

それとも
はじめての Python ですか?
http://www.amazon.co.jp/dp/4777513211
500デフォルトの名無しさん:2013/10/02(水) 15:22:00.60
ああ
オライリーっつってるから前者か
すまん忘れて
501デフォルトの名無しさん:2013/10/02(水) 15:30:28.56
邦題が罪深いだけで、技術書としてみたら700ページは分厚すぎることは無い
ただ、チュートリアル的なものを想像してた人は戸惑ってしまう

今ぐぐって見たら、オライリーからPythonチュートリアルっていう本もでてるのな
502デフォルトの名無しさん:2013/10/02(水) 15:30:53.12
星三つが付いてる本は気を付けた方が良いな。
503デフォルトの名無しさん:2013/10/02(水) 15:31:02.16
やっぱりPython使うならDjangoを通らないとダメですか?
fleskとかpyramidとかがいいんですが
504デフォルトの名無しさん:2013/10/02(水) 15:43:09.59
Pythonチュートリアルって
http://docs.python.jp/3/tutorial/
と一緒なのかな
505デフォルトの名無しさん:2013/10/02(水) 16:09:56.48
初めてのPython
http://www.amazon.co.jp/dp/4873113938

この本が読みにくかった理由の一つは、理論的な説明をしてから具体例の説明をしてるとこ
頭が悪いので、理論的なとこが理解できず、具体例を読んで少しわかるんだけど、
また理論的なとこに戻らなきゃならない

はじめてのPerlは読みやすかったんだけど
506デフォルトの名無しさん:2013/10/02(水) 16:18:37.23
>>503
ボトルで
507デフォルトの名無しさん:2013/10/02(水) 19:30:11.13
from bottle import route, run, template

@route('/hello/<name>')
def index(name='World'):
return template('<b>Hello {{name}}</b>!', name=name)

run(host='localhost', port=8080, reloader=True)

これ実行してリテラルを変更しても自動的にリロードされません!
何か設定いるんですか?
508デフォルトの名無しさん:2013/10/02(水) 19:43:40.42
それと同じ質問上のほうにあるよ
あと実行環境ぐらい書いたほうがいい
509デフォルトの名無しさん:2013/10/02(水) 21:06:34.76
Ubuntu Python2.7です
同じ質問は見当たりませんでした
510デフォルトの名無しさん:2013/10/02(水) 21:14:34.08
bottleのステマか

165 デフォルトの名無しさん [sage] 2013/09/04(水) 11:55:41.90 ID: Be:
apache+mod_wsgi+bottleで動かしてるんですが
apacheを再起動しないとファイルに修正した内容が反映されないんですが
再起動しなくても反映させる方法ないですか?

wsgiファイルの内容は
import sys, os, bottle
sys.path.append(os.path.dirname(__file__))
import mysite
application = bottle.default_app()
って書いてます

166 デフォルトの名無しさん [sage] 2013/09/04(水) 23:47:23.68 ID: Be:
>>165
http://bottlepy.org/docs/dev/tutorial.html#auto-reloading
bottleはさわったことないからググっただけだけど。
511デフォルトの名無しさん:2013/10/02(水) 21:16:41.76
それってWSGIの質問ですよね?僕はWSGIとは関係ないっす
512デフォルトの名無しさん:2013/10/02(水) 21:17:24.94
馬鹿には無理
513デフォルトの名無しさん:2013/10/02(水) 21:18:46.32
>>507

どうして以下のスレを活用しないの?


【Python】Python Webフレームワーク総合スレ
http://kohada.2ch.net/test/read.cgi/php/1329996601/
514デフォルトの名無しさん:2013/10/02(水) 21:20:22.23
>>511
死ね
515デフォルトの名無しさん:2013/10/02(水) 21:25:19.32
2.7っていつまでサポートされるの?
516デフォルトの名無しさん:2013/10/02(水) 21:35:00.68
>>507
そのままだとテンプレートがキャッシュされるからデバッグモードで実行しろ
517デフォルトの名無しさん:2013/10/02(水) 21:39:22.82
>>509
Linux 3.11.2 + Python2.7.5 + bottle 0.12-dev で試したけど
(サーバは特に指定してないけどアクセスログによれば WSGIRefServer)
変更したスクリプトの内容は自動で反映された
とはいえブラウザのリロードまでは勝手にやってくれない

>>515
2016 年とかそのくらいだって
http://stackoverflow.com/questions/4836375/end-of-support-for-python-2-7
518デフォルトの名無しさん:2013/10/02(水) 23:17:25.89
virtualenv aaa
ってやって
aaaを消したくなったら
ファイラーからそのままaaaを消しちゃえば問題ないですか?
virtualenv --helpみたけどいまいち削除するときはどうやればいいのかよくわかりません
519デフォルトの名無しさん:2013/10/02(水) 23:36:56.89
OK
520デフォルトの名無しさん:2013/10/03(木) 00:24:30.17
ありがとうございます
521デフォルトの名無しさん:2013/10/03(木) 11:54:08.19
virtualenvで仮想環境を作ったのはいいのですが
毎回コマンドラインからactivate実行しなければなりません
python example.pyってやったら自動的に仮想環境ので実行する設定とかありますか?
522デフォルトの名無しさん:2013/10/03(木) 12:30:20.60
環境変数を設定すればいいだけ
うまくやればあんたが希望しているようにも書ける
523デフォルトの名無しさん:2013/10/03(木) 12:37:52.02
ラッパー使えよ
524デフォルトの名無しさん:2013/10/03(木) 14:24:08.38
>>513
過疎スレ宣伝してんじゃねえよ
525デフォルトの名無しさん:2013/10/03(木) 19:37:52.05
物理を計算できるライブラリってありませんが?
物体を物理で動かすんじゃなくて数字がほしいだけです
526デフォルトの名無しさん:2013/10/03(木) 19:42:25.45
scipy
sympy
527デフォルトの名無しさん:2013/10/03(木) 19:48:43.64
class 定義がむやみに入れ子になってる(継承じゃなく)の気持ち悪く感じるのですが、
class を class の中で定義したほうがいい時ってどんな場合でしょうか?
528デフォルトの名無しさん:2013/10/03(木) 20:05:24.28
外に出す必要が無いとき
529デフォルトの名無しさん:2013/10/03(木) 20:52:13.63
リストに含まれる値に10かけるときに
[x for x in obj x * 10]
っていう感じの書き方あるじゃないですか
これ名称なんていうんですか?
530デフォルトの名無しさん:2013/10/03(木) 20:52:58.23
リスト内包表記
531デフォルトの名無しさん:2013/10/03(木) 21:01:53.99
それです
そのリストないほう表記で値が5より上の数字のみをフィルターできるサンプルが書きたいんですが
シンタックスエラーになってしまいます

a = range(10)
a = [for x in a if x > 5]
print(a)
532デフォルトの名無しさん:2013/10/03(木) 21:05:13.02
[x for x in a if x > 5]
533デフォルトの名無しさん:2013/10/03(木) 21:11:18.27
おおできました
ありがとうございます
534デフォルトの名無しさん:2013/10/03(木) 21:18:52.63
最後にすいません
そのリスト内包表記っていうのなんですが
ドキュメントのどのページにかいてあるのでしょうか?
サイト内検索でリスト内包表記で検索してみたんですがヒットしません

http://docs.python.jp/3.3/reference/index.html
535527:2013/10/03(木) 21:19:54.79
>>528 ありがとうございます。
出しとく必要がないときは入れとけって感じに思っておけばいいですかね
536デフォルトの名無しさん:2013/10/03(木) 21:24:44.94
537デフォルトの名無しさん:2013/10/03(木) 21:25:26.77
>>534
http://docs.python.jp/3/tutorial/datastructures.html#list-comprehensions

ドキュメントのクイック検索は任意の文字列の検索には対応してないみたいなんで
ググったほうがいいと思う。
538536:2013/10/03(木) 21:27:33.79
× [出力 for 束縛する変数 in 入力のリスト, 条件]
○ [出力 for 束縛する変数 in 入力のリスト if 条件]
539デフォルトの名無しさん:2013/10/03(木) 21:27:55.75
>>536-537
どうもありがとうございます
540デフォルトの名無しさん:2013/10/04(金) 01:29:36.67
Pythonスタートブック(辻真吾)
エキスパートPythonプログラミング(Tarek Ziadeの翻訳本)

を購入したのですがエキスパートの方で挫折しました(初心者なのに何故この2冊にしたのでしょう無謀でした)
そこでこの2冊の間を埋めるような内容の書籍を探しています
初歩の初歩はスタートブックで学びましたのでその一歩先を解説している良書がありましたら紹介していただきたいです
Mayaでの使用を考えてまして現行のモジュールが2.x系なのでまずはそっちから取り組もうと考えています
webで勉強するのも手かもしれませんが都合でできれば書籍で購入したいです
長くてすみません……お願いします
541デフォルトの名無しさん:2013/10/04(金) 01:52:06.15
書籍なんていらないよ
とりあえずここら辺を読んでおけばいい
ttp://www.python-izm.com/
542デフォルトの名無しさん:2013/10/04(金) 02:41:44.23
前にもっとプログラム自体初めての人用のが日本ポータルにあった気がするけど以下でも充分わかると思う
ttp://docs.python.jp/2/tutorial/index.html
543デフォルトの名無しさん:2013/10/04(金) 03:48:10.05
エキPyは個人的にはコーディングスタイルからデザパタまで触れられてて良書だった
一人でピコピコやるだけだから、二人以上での開発向けに書かれた部分はとりあえず保留してる
544デフォルトの名無しさん:2013/10/04(金) 09:06:29.55
>>540
その二冊の間は自分でコード書かないと埋まらないよ

コード書けって言われても何書いていいか/書けるかわかんないだろうから
まずは標準添付モジュールの中から面白そうなのを選んで
公式ドキュメント片手に主な関数の挙動を確かめる短いサンプルを山ほど書くのがお勧め
http://docs.python.jp/2/library/index.html

>>541
そこはやめたほうがいいかも。全体的にコードが幼い
545デフォルトの名無しさん:2013/10/04(金) 11:09:12.41
Pythonは誰が書いても同じような幼さになります(キリっ
546デフォルトの名無しさん:2013/10/04(金) 19:36:32.04
すいません、Pythonで書いたコードを他の人渡すのですが、
Pythonで実行できてもコードの中身はみせたくないので
暗号化してコードの中身がわからないようにしてPythonを実行できるように変換するライブラリってないでしょうか?
547デフォルトの名無しさん:2013/10/04(金) 19:54:47.58
どういうレベルを必要としてんの
国家機密でも含まれてるのか
548デフォルトの名無しさん:2013/10/04(金) 20:05:39.97
Pythonを組み込んだオリジナルの実行環境を作ればおk
549デフォルトの名無しさん:2013/10/04(金) 20:10:01.07
コードってソースコードかバイトコードかはっきりしろ

StackOverflowで同じ質問した人に対する最も評価の高い回答
http://stackoverflow.com/questions/6578452/how-to-encrypt-python-source-code
要約:無駄なことはやめとけ
550デフォルトの名無しさん:2013/10/04(金) 20:23:19.37
こんなのを使うとか
shedskin - An experimental (restricted-Python)-to-C++ compiler - Google Project Hosting
http://code.google.com/p/shedskin/
551デフォルトの名無しさん:2013/10/04(金) 20:37:12.29
webアプリ化してそのアドレスを渡す
552デフォルトの名無しさん:2013/10/04(金) 20:39:55.35
難読化でもしとけば
553デフォルトの名無しさん:2013/10/04(金) 22:50:19.74
PHPでいうpearがPythonではpypiで合ってますか?
ではPHPでいうPECLはPythonではなんていうのですか?
554デフォルトの名無しさん:2013/10/04(金) 23:00:53.25
区別は無いです
555デフォルトの名無しさん:2013/10/05(土) 00:01:47.10
mecab-pythonのアンインストールはどのように行うのでしょうか?
Mac です
556デフォルトの名無しさん:2013/10/05(土) 00:24:57.74
>>544
>>公式ドキュメント片手に主な関数の挙動を確かめる短いサンプルを山ほど書くのがお勧め

具体的にkwsk
557デフォルトの名無しさん:2013/10/05(土) 00:39:23.45
ライブラリの使い方はどの言語でも同じようなもんだけど
Pythonは基本さえわかればあとは書きたいように書けるから例外的な知識をそのつど経験で補うみたいな他の言語で必要なことは少ない
558デフォルトの名無しさん:2013/10/05(土) 00:53:14.31
540です
回答くれた方々ありがとうございます
書籍はやはりなさそうですね……webで勉強しつつコード書いてこうかと思います
リンク先のサイト参考にさせていただきます
559デフォルトの名無しさん:2013/10/05(土) 13:46:05.06
>>556
具体的に詳しくってどのへん?どこがわからない?
560デフォルトの名無しさん:2013/10/05(土) 22:24:05.91
WindowsのSystem Volume Informationフォルダみたいなアクセスできないフォルダに対して
os.stat(path)をやると

>PermissionError: [WinError 5] アクセスが拒否されました。

って例外がでます
os.access("C:/System Volume Information", os.R_OK | os.W_OK | os.X_OK))
の結果はTrueになります

try exceptを使わないで
os.stat()で情報を取得する前に、そのディレクトリ・ファイルにos.stat()で例外が出ないようにする方法を教えてください
561デフォルトの名無しさん:2013/10/05(土) 22:32:16.63
管理者権限でpython.exeを動かす
562デフォルトの名無しさん:2013/10/05(土) 22:44:09.37
ちゃんと権限設定してあればアクセスできるぞ
権限設定してなければ管理者でも駄目
563デフォルトの名無しさん:2013/10/05(土) 22:45:43.51
ちなみに標準ではSYSTEMアカウントのみになっているはずだ
そこにお前のユーザーを追加すればいい
564デフォルトの名無しさん:2013/10/05(土) 22:57:27.36
さらに補足すると
winのPythonのos.accessはどんなディレクトリに対して実行しても読み書きOKになります
これはmsvcrtの仕様です
またexecutableのフラグがないのでX_OKは意味がありません
565デフォルトの名無しさん:2013/10/05(土) 22:57:31.71
誰も、System Volume Information フォルダのアクセス方法なんて聞いてないやん...
566デフォルトの名無しさん:2013/10/05(土) 23:02:01.54
>>561-565
情報ありがとうございます
できればOS関係への設定は避けたいです
http://msdn.microsoft.com/ja-jp/library/system.io.fileattributes(v=vs.95).aspx
FileAttributes.Systemみたいに、パスがシステムファイルであるか調べられる方法があれば一番いいのですがこういうのないでしょうか?
567デフォルトの名無しさん:2013/10/05(土) 23:04:16.79
システムファイルかどうかが問題なんじゃなくて
ACLの問題なのでこの辺を使う必要があります
http://msdn.microsoft.com/ja-jp/library/aa374909%28v=vs.90%29.aspx

はっきり言って生半可なレベルでは手が出ないので
我慢するかラッパー関数でお茶を濁すべきでしょう
568デフォルトの名無しさん:2013/10/05(土) 23:12:31.65
でなければ・・・管理者での起動を許容できるなら
icaclsをパスに向けて打って出力をチェックする方法が考えられます

C:\Windows\system32>icacls "D:\System Volume Information"
D:\System Volume Information NT AUTHORITY\SYSTEM:(OI)(CI)(F)

こんな風に出ます
まあオーバーなコストになるでしょうね
569デフォルトの名無しさん:2013/10/05(土) 23:13:49.64
素直に try except 使うか、自分で stat( ) 相当のものを書けばいいと思う。
570デフォルトの名無しさん:2013/10/05(土) 23:21:51.72
なるほど、あきらめてtry exceptにしたほうがよさそうです
571デフォルトの名無しさん:2013/10/06(日) 03:03:02.86
http://ideone.com/JBhjBx このプログラムはウェブ上の貰い物です
fieldクラスがいらないのじゃないかという違和感があるのですがこう書くのが普通なのでしょうか。
572デフォルトの名無しさん:2013/10/06(日) 03:03:39.66
http://ideone.com/JBhjBx このプログラムはウェブ上の貰い物です
fieldクラスがいらないのじゃないかという違和感があるのですがこう書くのが普通なのでしょうか。
573デフォルトの名無しさん:2013/10/06(日) 03:05:09.87
間違えて2回貼ってしまいました。すみません
574デフォルトの名無しさん:2013/10/06(日) 05:03:12.69
>>572
いらないってどういうこと?
fieldクラスは使われているから消したら動かないと思うけど
575デフォルトの名無しさん:2013/10/06(日) 08:03:55.75
Field クラスとして別個に定義してあることに違和感があるんじゃないか
全体的に設計はイマイチに見える
576デフォルトの名無しさん:2013/10/06(日) 10:26:09.76
二つのディレクトリの中身に違いがあるかチェックできるライブラリありませんか?

求める内容
・ファイルの内容が違うかどうか
・ファイルとディレクトリの構成が違うかどうか
・可能であれば、zipファイルとの比較もできる
577デフォルトの名無しさん:2013/10/06(日) 10:49:39.23
それ、diffじゃん
578デフォルトの名無しさん:2013/10/06(日) 12:20:03.27
>>575 ありがとうございます。もう少しいい例を探してみます。
579デフォルトの名無しさん:2013/10/06(日) 12:57:13.53
subprocess.checkcallでコマンドを実行すると
コマンドラインに出力されてしまいます
コマンドの戻り値が正常終了だと0でそれ以外だとn>0の数字が帰ってくるものですが
この戻り値を変数にいれるだけにしたいんです
a = check_call(["dir"], shell=True)
どうやればコマンドの実行結果をコマンドラインに出力されないようにできますか?
580デフォルトの名無しさん:2013/10/06(日) 13:01:10.78
subprocess.check_call(['dir'], shell=True, stdout=subprocess.PIPE)
581デフォルトの名無しさん:2013/10/06(日) 13:03:14.80
そのためにcheck_outputあるんだろ
582デフォルトの名無しさん:2013/10/06(日) 13:07:31.65
checkcallは見つけてるのにな
なんでだよ気付けよ
583デフォルトの名無しさん:2013/10/06(日) 13:08:31.25
Python は誰が書いても同じようなコードになります(キリっ
584582:2013/10/06(日) 13:11:00.13
ごめん嘘
でも>>580も使うべきじゃない
パイプバッファがあふれるから

Popen.wait() のように、これは以下の場合にデッドロックになります。
stdout=PIPE および/または stderr=PIPE を使って、子プロセスが十分な出力を生成したのに、
出力先が、OS パイプバッファがそれ以上のデータを受け付けるのを待っているような場合です。

一番適切なのはopenでnullデバイスを開いてstdoutに渡す
3.3ならsubprocess.DEVNULLを使用すべき
585デフォルトの名無しさん:2013/10/06(日) 13:15:27.40
例としてはこう
with open(os.devnull,"w") as nil:
  subprocess.check_call(['dir'], shell=True, stdout=nil)
586デフォルトの名無しさん:2013/10/06(日) 13:30:15.17
check_outputじゃだめなんですか?
587デフォルトの名無しさん:2013/10/06(日) 13:32:39.28
check_output は内部で stdout=subprocess.PIPE を使っています
PIPE が詰まる
588デフォルトの名無しさん:2013/10/06(日) 13:39:41.46
>>586-587
>>579はリターンコードが欲しいと言ってるからcheck_outputじゃ駄目
もう1点訂正しておく
check_outputは内部でPIPEを使用しているがPIPEは詰まらない
PIPEが詰まるのはPIPEを使用しているのにPIPEに書き込まれたデータを読み取らない場合
check_outputは中でcommunicateを使ってPIPEに書き込まれたデータを読み取っているので詰まらない
589デフォルトの名無しさん:2013/10/06(日) 13:45:44.93
ただしstderr=PIPEを指定するとcheck_outputでもPIPEが詰まる
これはnullに吐くかstdoutにリダイレクトしなければならない
590デフォルトの名無しさん:2013/10/06(日) 13:51:22.56
>>> from subprocess import *
>>> check_call("ls -l", shell=True, stdout=DEVNULL)
0

おお。3.3 に移行する意欲が少し湧いた
591デフォルトの名無しさん:2013/10/06(日) 14:18:11.65
check_output はリターンコードとれるよ
592デフォルトの名無しさん:2013/10/06(日) 14:29:48.73
ドキュメント見るにリターンコードが欲しいだけなら call() でもいいっぽい
check_call() との違いは後者は実行するコマンドが 0 以外を返すと例外 CalledProcessError を吐くこと

check_output() だとリターンコード取るのは遠回りか
>>> try:
...     output = check_output("notexist", shell=True)
... except CalledProcessError as e:
...     print(e.returncode)
...     print(e.output)
...
/bin/sh: notexist: command not found
127
b''
593579:2013/10/06(日) 15:16:26.39
できました
いろいろ教えていただいてありがとうございました
594デフォルトの名無しさん:2013/10/06(日) 15:47:56.70
PythonではYAMLは標準ライブラリにないから気軽に使えない
Pythonで妥当なフォーマットはXMLかCSVかJSONかINIである
595デフォルトの名無しさん:2013/10/06(日) 15:57:55.39
ん?いきなりどうした?発作か?
596デフォルトの名無しさん:2013/10/06(日) 16:04:27.78
2週間くらいリロードしてないんだろ
597デフォルトの名無しさん:2013/10/06(日) 16:23:39.04
>>577
diffコマンドを使えば
・ファイルの内容が違うかどうか
・ファイルとディレクトリの構成が違うかどうか
この2つはクリアできました
あとは
・可能であれば、zipファイルとの比較もできる
をクリアしたいのですが何か良いアイデアないでしょうか?
598デフォルトの名無しさん:2013/10/06(日) 16:38:33.31
>>597
unzip を参考にすればいいと思うんだが...
599デフォルトの名無しさん:2013/10/06(日) 17:04:46.10
diff a.zip b.zip
それじゃまずいなら import zipfile してメンバごとに比較
600デフォルトの名無しさん:2013/10/06(日) 17:09:01.40
面倒くさいからテンポラリに展開して比較する
費用対効果を考えてこういう割りきりができるかどうかがビギナーとの差
601デフォルトの名無しさん:2013/10/06(日) 17:50:11.71
zipfileで7z作ろうと思ってるんだけどlzmaの実装は正しアルゴリズムになってると思いますか?lzma
602デフォルトの名無しさん:2013/10/06(日) 17:53:25.02
日本語でおk
603デフォルトの名無しさん:2013/10/06(日) 18:07:37.21
>>601
7zを実装しようとするなら正しくない
アルゴは同じだが出力が違う

まあEXIFがついてる画像とついてない画像くらいの違いだけど
604デフォルトの名無しさん:2013/10/06(日) 19:14:01.72
>>601
zipfile で .7z は作れないんじゃない?
3.3 からは LZMA で圧縮した .zip が作れるようになったけど
605デフォルトの名無しさん:2013/10/06(日) 22:10:18.38
まともな人はPopen使う
606デフォルトの名無しさん:2013/10/06(日) 22:43:59.35
せやね
607デフォルトの名無しさん:2013/10/07(月) 07:10:42.41
Python3 なんだけど, どこぞに POSIX.2 準拠の正規表現ライブラリ転がってませんか?
608デフォルトの名無しさん:2013/10/07(月) 07:30:16.96
>>607
POSIX.2 準拠か知らんがこれとか?
https://pypi.python.org/pypi/regex
あとはctypesで鬼車とか
609デフォルトの名無しさん:2013/10/07(月) 08:05:06.69
>>608 ありがと
> ctypesで鬼車
これでやってみることにした
610デフォルトの名無しさん:2013/10/07(月) 09:21:16.91
>>609
>>608でだめならBoost.RegexをCython経由で
611デフォルトの名無しさん:2013/10/07(月) 11:55:43.79
Cython って C だけじゃなくて C++ との相性もいいの?
612デフォルトの名無しさん:2013/10/07(月) 13:10:07.66
rescueされることのないStopIteration
神輿担ぎ夜の部はまだ始まったばかりだ
613デフォルトの名無しさん:2013/10/07(月) 16:08:05.53
socketを扱うならこれだ!っていう定番パッケージありますか?
614デフォルトの名無しさん:2013/10/07(月) 16:40:42.88
ggrks
615デフォルトの名無しさん:2013/10/07(月) 17:02:34.86
>>613
標準ライブラリぐらいみよう
http://docs.python.jp/3.3/library/socket.html
616デフォルトの名無しさん:2013/10/07(月) 17:05:14.31
いや標準ライブラリが存在するのは知ってるんですよ
例えばrequestsみたいに標準ライブラリより使いやすいパッケージがあるじゃないですか
そういうサードパーティのパッケージをさがしてたのに
617デフォルトの名無しさん:2013/10/07(月) 17:26:27.12
ああいえば上祐
618デフォルトの名無しさん:2013/10/07(月) 18:41:40.26
pypiでsocketで検索してweightの大きい奴見てみれば
そこに所望のものが無ければ限りなく「無い」に近いだろう
619デフォルトの名無しさん:2013/10/07(月) 18:54:19.88
送受信どちらも自作ならZeroMQとかあるが
620デフォルトの名無しさん:2013/10/07(月) 20:27:10.48
ネットワークプログラミングではTwistedを使うのが前は定番だったけど最近はいまいち流行ってない気がする
621デフォルトの名無しさん:2013/10/07(月) 20:50:33.06
王道というパッケージはなさそうですね
あきらめて標準パッケージでやるか別の言語も視野に入れます
622デフォルトの名無しさん:2013/10/07(月) 21:02:38.84
うむ
623デフォルトの名無しさん:2013/10/07(月) 23:19:38.07
今の言語はゆとり環境がないと流行らないってのは感じるな
C#マンセーしてるのもそういう奴らばっかりだし
624デフォルトの名無しさん:2013/10/08(火) 01:49:46.32
python2.7をつかっていますが、メソッドやプロパティ名称に#を使うのは無理でしょうか。getattrでならいけますが、、、使い分けねばならないのは嬉しくないです。

1行目に項目名があるcsvファイルを、行単位にインスタンスを生成し、項目名で値を取れるような構造にしたところ項目名に#がついているものがあったという感じです。
625デフォルトの名無しさん:2013/10/08(火) 06:23:01.77
__getitem__使って[]でアクセスするようにしたら?
>>> class Spam(object):
... def __getitem__(self, i):
... return i
...
>>> s = Spam()
>>> s['#spam']
'#spam'

というかCSVの行なら普通のtupleかdictで十分な気もする
626デフォルトの名無しさん:2013/10/08(火) 10:04:07.58
>>625
ありがとうございます。確かに辞書だけでも解決できそうです。
ただ、xlrdでエクセルファイルを入力にしたいものもあり、それらを透過的に扱いたいという思い。加えて、一部の値については何らかの加工をした上で返したい場合もあったりなのです。

メインフレーム主体の職場で、そんな変な言語、扱いだったので布教したかったですが私には力不足のようです。。。
627デフォルトの名無しさん:2013/10/08(火) 11:18:12.02
>>626
別の文字に置き換えるしかないような
Python3なら識別子にUnicodeが使えるのでそれで代用するとか
ただし全角の#は使えない
628デフォルトの名無しさん:2013/10/08(火) 11:41:56.70
最近 SVG が流行ってるらしいんですが
Python で SVG を扱うには
どのパッケージが一番良いのでしょう?
629デフォルトの名無しさん:2013/10/08(火) 12:17:07.35
どこをみて流行ってると判断したのか?
630デフォルトの名無しさん:2013/10/08(火) 12:27:06.95
safariの仕様が変わるので、SVGは怖い。
デスクトップとかドヤは無視できても、
iphoneを無視するわけにもいかないし。
631デフォルトの名無しさん:2013/10/08(火) 12:43:53.42
>>629
たとえばこのへんです
http://ja.wikipedia.org/wiki/Processing
http://www.atmarkit.co.jp/ait/articles/0802/15/news150.html
http://ja.wikipedia.org/wiki/Scalable_Vector_Graphics
最近のIEが対応したらしくて
なんか見直されて地味に普及が始まってて・・・
流行ってるっていうのは言い過ぎでしたね
すみません
632デフォルトの名無しさん:2013/10/08(火) 12:59:36.88
633デフォルトの名無しさん:2013/10/08(火) 17:00:51.89
>>632
thx!
634デフォルトの名無しさん:2013/10/08(火) 17:15:59.38
SVGが見直されたとか言うのはHTML5がらみの話かな?
http://jsdo.it/event/svggirl/event/ie9camp/
635628:2013/10/09(水) 10:16:47.66
svglib でうまくいきました
本当にありがとうございました
636デフォルトの名無しさん:2013/10/09(水) 15:50:07.13
pygameが充実しすぎててほんと素晴らしい
637デフォルトの名無しさん:2013/10/09(水) 21:20:15.70
class Foo:
pass

a=Foo()
b=Foo()

c=[a]

print b in c


とするとFalseになります。
なんでですか?
2.7です
638デフォルトの名無しさん:2013/10/09(水) 21:49:59.00
>>637
__contains__のなかで__eq__を使ってるんだけど、デフォルトの__eq__はオブジェクトのidで比較するからaとbは等しくならない
狙ってるようにTrueにしたいならFooで__eq__を上書きしないとダメ
639デフォルトの名無しさん:2013/10/09(水) 22:09:28.82
すいませんpyconみたいな大きな発表会って1年に一回しかないのでしょうか?
640デフォルトの名無しさん:2013/10/09(水) 22:11:54.24
Pythonでソケット書いてみましたがあまり情報がないのと
ストレートにシンプルに書くと複数クライアントから送信できないからselect使わないといけないなど
Pythonでソケットって面倒くさいですね
簡単に扱えるライブラリ誰か作ってほしい
641デフォルトの名無しさん:2013/10/09(水) 22:21:53.05
自分が簡単に扱うための苦労を誰かに負えと
俺はとてもそんな口は叩けないわ
642デフォルトの名無しさん:2013/10/09(水) 22:26:22.47
誰か作ってほしい

苦労を誰かが負う

つくりもしない奴の過剰な被害妄想乙
643デフォルトの名無しさん:2013/10/09(水) 22:34:22.84
作って欲しい人が敵を増やすような行為をするのが理解できない
644デフォルトの名無しさん:2013/10/09(水) 22:35:06.60
>>638
ありがとうございます

追加で
@b in c はlist.__contain__(c,b)ですか?
Aオブジェクトのidってなんですか?
645デフォルトの名無しさん:2013/10/09(水) 22:48:34.52
>>644
1.
b in cはc.__contains__(b)ってこと
2.
idってのはid(a)ってこと
そのオブジェクトが生きてる間は必ずユニークで、CPythonの場合はアドレス値になってる
646デフォルトの名無しさん:2013/10/09(水) 22:49:20.88
下げ忘れためんご
647デフォルトの名無しさん:2013/10/09(水) 23:16:44.65
許さない
648デフォルトの名無しさん:2013/10/09(水) 23:20:35.27
ならば私が許そう
649デフォルトの名無しさん:2013/10/09(水) 23:44:40.39
>>645
ありがとうございます

度々もうしわけないです
class Foo:
  pass

としたとき、
デフォルトで定義されてる特殊メソッドって
__eq__以外にありますか?
650デフォルトの名無しさん:2013/10/09(水) 23:51:49.21
Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (In
tel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> class Foo:
... pass
...
>>> f = Foo()
>>> dir(f)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__form
at__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__',
'__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__
repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref_
_']
>>>
651デフォルトの名無しさん:2013/10/10(木) 03:00:26.26
>>649
__hash__とか__cmp__とか
http://docs.python.jp/2/reference/datamodel.html#customization
ここ見るといいよ

あとちょっとずれるけど旧スタイルクラスじゃなくて、objectを継承する新スタイルクラスを使ったほうがいいと思う
652デフォルトの名無しさん:2013/10/10(木) 09:50:01.47
asyncore
653デフォルトの名無しさん:2013/10/10(木) 09:58:40.74
特殊メソッドってなんですか?
どうやって使うんですか?
654デフォルトの名無しさん:2013/10/10(木) 12:09:28.66
オーバーライドして挙動を変える
655デフォルトの名無しさん:2013/10/10(木) 13:05:38.64
>>650
>>651
ありがとうございます。

旧スタイルと新スタイルの違いはよくわかりませんが
3.x系だと違いがない?みたいなので、そちらに変えました

また質問で申し訳ないです

pack1
__init.py
foo.py

pack2
__init__.py
bar.py


@bar.pyのなかでfoo.pyをインポートするのはどうすればいいですか?
Abar.pyのなかでfoo.pyをインポートするのはパッケージの独立性から望ましくないですか?
656デフォルトの名無しさん:2013/10/10(木) 14:34:31.66
from pack1 import foo

必要性があれば環境を破壊するような行為ですら許される
657デフォルトの名無しさん:2013/10/10(木) 18:47:52.63
それパッケージを分ける必要あんの?
658デフォルトの名無しさん:2013/10/10(木) 23:52:02.83
今日初めてのPythonが届いたんだが...
評判悪いのか。
659デフォルトの名無しさん:2013/10/10(木) 23:55:54.84
読んでみて自分に合ってんならそれでいいでしょうよ
読んでないならギャンブルだな
さあ賽を振りたまえ
660デフォルトの名無しさん:2013/10/10(木) 23:56:41.09
ファンブル!
661デフォルトの名無しさん:2013/10/11(金) 01:36:40.96
pythonでHDMIの映像を表示させることって出来ますか?
HDMIはキャプチャーカードからの入力です。
662デフォルトの名無しさん:2013/10/11(金) 06:20:50.55
subprocess.call(変数)のような使い方はできないでしょうか
Pythonスクリプト上で生成したアドレスを使いたいのです…
663デフォルトの名無しさん:2013/10/11(金) 08:13:43.67
まずプログラムの起動されかたを知るべきだろう
664デフォルトの名無しさん:2013/10/11(金) 14:31:06.24
windows環境ですが、virtualenvの仮想環境下でwxPythonを導入する方法ってないでしょうか?
665デフォルトの名無しさん:2013/10/11(金) 16:46:06.91
python にもともとある sqlite3 モジュールで
Firefox の hoge.sqlite にアクセスしてみたのですが
アクセス出来るファイルと出来ないファイルがあります
なぜでしょう?
666デフォルトの名無しさん:2013/10/11(金) 16:47:11.95
六六六
667デフォルトの名無しさん:2013/10/11(金) 17:10:47.81
>>665
バージョン違いの .sqlite ファイルが混ざってるとか?
バージョンは file コマンドがあるなら file hoge.sqlite か
なければ Python から open("hoge.sqlite", "rb").read(16) で調べられる
668デフォルトの名無しさん:2013/10/12(土) 02:56:40.09
for文の終わりを明確に記述することは出来ませんか?
669デフォルトの名無しさん:2013/10/12(土) 02:58:07.77
# endfor
670デフォルトの名無しさん:2013/10/12(土) 02:58:52.64
>>669
どうもです。
671デフォルトの名無しさん:2013/10/12(土) 04:03:19.14
else: pass
672デフォルトの名無しさん:2013/10/12(土) 05:56:22.38
>>658
それって2系の本じゃないの?
673デフォルトの名無しさん:2013/10/12(土) 09:37:11.99
もしかしたらスレ違いかもしれません
sublimetext2を使っているのですが,timeとかのライブラリの関数の補完ができません
サードパーティのものはsite-packagesのパスを加えたら補完されるようになったのですが,
何か設定が必要でしょうか?
674673:2013/10/12(土) 09:37:55.59
すいません 書き忘れてましたが環境はwindows,python2.7です
675デフォルトの名無しさん:2013/10/12(土) 09:41:52.11
Pythonと関係ない話題は専門のスレへ
676デフォルトの名無しさん:2013/10/12(土) 11:24:38.48
ソフトウェア板にスレあります
677デフォルトの名無しさん:2013/10/12(土) 13:10:03.71
"abc"を["a","b","c"]というふうに1文字ずつ区切ってリストにする方法をおしえてください
Python3.3.2

ダメだったコード
"abc".split("")
"abc".split()
678デフォルトの名無しさん:2013/10/12(土) 13:15:48.95
list("abc")
679デフォルトの名無しさん:2013/10/12(土) 13:25:18.40
発想の違いがよく分かるな
680デフォルトの名無しさん:2013/10/12(土) 15:18:21.50
perl病やruby病に冒されていると
ダメコードの発想になります
というか私もそうでした
681デフォルトの名無しさん:2013/10/12(土) 15:20:22.00
3 文字目がほしいだけなら
"abc"[2]
で良い
682デフォルトの名無しさん:2013/10/12(土) 15:23:09.31
たしかに他の言語使ってから Python 使うと
文字列がシーケンスで最初から区切ってあるってことよく忘れる

>>> ",".join("abc")
'a,b,c'
683デフォルトの名無しさん:2013/10/12(土) 15:25:15.25
なにその違い
他にも注意したほうがいい違いってありまうか?
684デフォルトの名無しさん:2013/10/12(土) 15:44:39.01
全て
685デフォルトの名無しさん:2013/10/12(土) 16:13:39.67
ついつい ste.length() してしまうのは
じゃヴぁ脳ですねわかります
686デフォルトの名無しさん:2013/10/12(土) 16:30:43.36
<?python
って書けないのが気持ち悪い
687デフォルトの名無しさん:2013/10/12(土) 16:49:33.59
688デフォルトの名無しさん:2013/10/12(土) 16:54:15.20
php本体の機能とmodの機能を混同してるんすなあ
689デフォルトの名無しさん:2013/10/12(土) 16:57:54.41
phpでも初めてLAMP触ったような初心者じゃなきゃ普通はテンプレートエンジン使うわ
あとは古代人だけだ
690デフォルトの名無しさん:2013/10/12(土) 16:58:54.58
pasterコマンドって実際に何をしてるんでしょうか?
パッケージを作ったり、pylonsでコントローラ作ったりする時に利用しますが、そもそもどこを見て動かしてるのでしょうか?
ググってもインストール方法ばかりで…
691デフォルトの名無しさん:2013/10/12(土) 17:01:43.29
ソースコード読めば分かります
せっかくスクリプト言語なのだから読みなさい
692デフォルトの名無しさん:2013/10/12(土) 17:39:23.32
pasterコマンドって実際に何をしてるんでしょうか?
パッケージを作ったり、pylonsでコントローラ作ったりする時に利用しますが、そもそもどこを見て動かしてるのでしょうか?
ググってもインストール方法ばかりで…
693デフォルトの名無しさん:2013/10/12(土) 17:39:42.36
pasterコマンドって実際に何をしてるんでしょうか?
パッケージを作ったり、pylonsでコントローラ作ったりする時に利用しますが、そもそもどこを見て動かしてるのでしょうか?
ググってもインストール方法ばかりで…
694デフォルトの名無しさん:2013/10/12(土) 17:40:55.00
pasterコマンドって実際に何をしてるんでしょうか?
パッケージを作ったり、pylonsでコントローラ作ったりする時に利用しますが、そもそもどこを見て動かしてるのでしょうか?
ググってもインストール方法ばかりで…
695デフォルトの名無しさん:2013/10/12(土) 17:41:42.62
操作ミスの連投すみません
696デフォルトの名無しさん:2013/10/12(土) 17:47:26.61
発狂したのかと思った
697デフォルトの名無しさん:2013/10/12(土) 17:52:47.18
いまこんな短い周期で連投できたっけ
698デフォルトの名無しさん:2013/10/12(土) 18:02:15.92
忍法帳はレベル上がれば短時間で書くことは可能
699 忍法帖【Lv=26,xxxPT】(1+0:5) :2013/10/12(土) 18:09:49.48
700デフォルトの名無しさん:2013/10/12(土) 19:33:38.05
pythonでfor文の中にfor文を入れ子するのは可能ですか?
701デフォルトの名無しさん:2013/10/12(土) 19:43:12.21
可能です
702デフォルトの名無しさん:2013/10/12(土) 20:14:16.46
回答待ってる間に試せばいいのに
703デフォルトの名無しさん:2013/10/12(土) 20:15:10.94
foo.pyのなかでbar.pyをimportしつつ
bar.pyのなかでfoo.pyをimportするのっていいんですか?
704デフォルトの名無しさん:2013/10/12(土) 20:41:26.25
リスト内包の中で入れ子にすると順番があれだよね
705700:2013/10/12(土) 22:18:19.21
import urllib2
if __name__ == "__main__":
for i in range(1,5):
url="https://i.tipness.co.jp/pc/schedule/registration/?area_id=&page="
url += str(i)
data = urllib2.urlopen(url)
body = data.read()
import re
tome = str("")
for x in range(10):
head, body = re.split(r'" class="_checkBox" /></td>\n<td>',body,1)
head, body = re.split(r'</td>\n<td>',body,1)
tame_tame = head +","
head, body = re.split(r'</td>\n<td>',body,1)
tame_tame += head +","
head, body = re.split(r'</td>\n<td>',body,1)
tame_tame += head +","
head, body = re.split(r'</td>\n<td>',body,1)
tame_tame += head +","
head, body = re.split(r'</td>\n<td>',body,1)
tame_tame += head +","
head, body = re.split(r'</td>\n<td>',body,1)
tame_tame += head +"\n"
tome += tame_tame
# endfor

print tome
text_out = open("hello-2.txt", "a")
text_out.write(tome)
text_out.close()
data.close()
# endfor
706700:2013/10/12(土) 22:20:43.00
>>701
ありがとうございます。
つか、>>705ですが、これでいいのでしょうか?
中のforは10回回ってくれるのですが、
外のforは5回回したいのですが、1回しか回ってないように思われます。
707デフォルトの名無しさん:2013/10/12(土) 22:27:25.66
pastebinに貼り直してからまたきて
708700:2013/10/12(土) 22:51:53.60
>>707
http://pastebin.com/eY1qef3J
貼ってみました
709デフォルトの名無しさん:2013/10/12(土) 22:55:02.22
インデントが・・・
710デフォルトの名無しさん:2013/10/12(土) 23:02:49.16
>>708
インデントやり直して
711デフォルトの名無しさん:2013/10/12(土) 23:11:53.22
pastebinに貼り直してって書いた理由ちょっとぐらい考えてよ。。
712デフォルトの名無しさん:2013/10/12(土) 23:16:43.60
ワロタw
for i in range(1,5):じゃ4回しか回んねえぞw
for i in range(5):にしとけ
713デフォルトの名無しさん:2013/10/12(土) 23:21:32.76
>>708
インテントのスペース4つ、面倒くさいならせめて2つ
スペース1つは読みづらいから絶対にダメ

#はコメントアウト
#endforはただのコメント
for文の終わりをpythonに指示するものではない

インデントが無茶苦茶だから、2つのfortが入れ子になっていない
714700:2013/10/12(土) 23:37:13.82
>>713
> #はコメントアウト
> #endforはただのコメント
> for文の終わりをpythonに指示するものではない
じゃ、
俺は、>>668で質問したんだけど、
>>669の回答はウソ?
endforはpythonにないんですか?
715700:2013/10/12(土) 23:39:09.74
つまり、
・for文の終わりはインデントでしか表現出来ない
で、いいんですか?
716デフォルトの名無しさん:2013/10/12(土) 23:39:27.30
>>714
ない
717デフォルトの名無しさん:2013/10/12(土) 23:39:34.38
勝手に人を騙って荒すのやめてください
718700:2013/10/12(土) 23:42:28.12
>>705
>if __name__ == "__main__":

あと、↑これの意味わからないのですw
どういう意味があるのか教えて下さい。
719デフォルトの名無しさん:2013/10/12(土) 23:46:21.82
その文字列をそのままググれば一番上に来るサイトに答えが載っているレベルの質問
720700:2013/10/12(土) 23:51:02.23
>>719
ググってもよくわからないんだけど、ま、おまじないみたいなものと。
で、気になるのは、
・ifのループ文ではない
は正しいですか?
721700:2013/10/12(土) 23:52:43.39
「if __name__ == "__main__": を、最初にポンと置いて、後は気にすることはない」
でいいですか?
722デフォルトの名無しさん:2013/10/12(土) 23:57:11.79
if name=mainは.pyを単独で実行するか他から呼ぶかだよ
723デフォルトの名無しさん:2013/10/12(土) 23:57:39.79
それ以外の部分が正しく書けているならそれでいいんじゃない

書いたコードの使い方によってはそもそもいらないけど
使い方は知らないしなんとも言えない
724700:2013/10/13(日) 00:17:44.46
http://pastebin.com/qkxk28V1
ありがとうございます。
これで、エラーなく、中が10回、外が4回回るようになりました
質問1
中で10回回す時のfor x in range(10):ですが、実は変数xを使っていません。
この記述でいいのでしょうか?
質問2
このプログラムは、インデントで半角空白が4つ使ってて上がったままになっているのですが、
プログラムの終わり方として、これでいいのでしょうか?

あと、ほかに、ここは変というところを教えて頂ければ幸いです。
725デフォルトの名無しさん:2013/10/13(日) 00:22:31.55
>>724
@いいですよ
Aいいですよ

外を五回にしたけりゃrange(1,6)にしろ
726700:2013/10/13(日) 00:25:01.77
import urllib2
import re
if __name__ == "__main__":
 for i in range(1,5):
  url="https://i.tipness.co.jp/pc/schedule/registration/?area_id=&page="
  url += str(i)
  data = urllib2.urlopen(url)
  body = data.read()
  tome = str("")
  for x in range(10):
   head, body = re.split(r'" class="_checkBox" /></td>\n<td>',body,1)
   head, body = re.split(r'</td>\n<td>',body,1)
   tame_tame = head +","
   head, body = re.split(r'</td>\n<td>',body,1)
   tame_tame += head +","
   head, body = re.split(r'</td>\n<td>',body,1)
   tame_tame += head +","
   head, body = re.split(r'</td>\n<td>',body,1)
   tame_tame += head +","
   head, body = re.split(r'</td>\n<td>',body,1)
   tame_tame += head +","
   head, body = re.split(r'</td>\n<td>',body,1)
   tame_tame += head +"\n"
   tome += tame_tame
  print tome
  text_out = open("hello-2.txt", "a")
  text_out.write(tome)
  text_out.close()
  data.close()
727700:2013/10/13(日) 00:27:42.22
>>725
ありがとうございます。

あと、>>726でエラーなく通ったのですが、
>>726
> for i in range(1,5):
この部分は、
インデント無しにすべきだと思うのですがどうでしょう?
インデント無しにするとエラーになります。
728デフォルトの名無しさん:2013/10/13(日) 00:30:20.13
>>727
if __name__ == "__main__":

上の文を消してインデントなくすか

if __name__ == "__main__":
 pass

って書いてインデントなくすかどっちか
729700:2013/10/13(日) 00:34:19.41
>>728
ああ、なるほど。そのifが効いてるんですね。
ありがとうございます。

あと、外側のループを4回ではなく、200回ぐらい回すのですが、
相手方のサーバーに負荷をかけないために、時間をとるコマンドはないでしょうか?
730デフォルトの名無しさん:2013/10/13(日) 00:35:28.31
>>727
if文の中だからインデントはなくしちゃダメ
731デフォルトの名無しさん:2013/10/13(日) 00:36:26.60
>>729
timeモジュールのsleepを使うといいよ
732700:2013/10/13(日) 00:38:56.52
>>730-731
ありがとうございます。
733デフォルトの名無しさん:2013/10/13(日) 03:11:11.90
>あと、ほかに、ここは変というところを教えて頂ければ幸いです。

全てが変
センスなさすぎ
おまえはRubyスレに帰れ
734700:2013/10/13(日) 04:07:49.41
>>733
rubyはウインドウズだと挙動が変でエラーばかり出る、はないの?
735700:2013/10/13(日) 04:14:07.33
ただ、括弧を使わないでインデントでブロックを表現する、
はしんどいわwww
俺みたいにネットで人のソースをパクってつぎはぎする人にはしんどいwww
736デフォルトの名無しさん:2013/10/13(日) 04:42:05.28
コピペグラマーを排除できるのは良いことだな
737デフォルトの名無しさん:2013/10/13(日) 05:07:24.27
バカには難しいくらいでちょうどええ
738デフォルトの名無しさん:2013/10/13(日) 07:46:42.22
確かにコピペだけは面倒なんだよな
でもインデントブロックはなんか使ってるとクセになる魅力がある
臭いけど美味い食べ物的な
739デフォルトの名無しさん:2013/10/13(日) 09:43:08.25
結局どの言語でもインデントするから{はいらないと思うようになった
740デフォルトの名無しさん:2013/10/13(日) 10:03:30.14
>>737
そういうのはよくないと思う
741デフォルトの名無しさん:2013/10/13(日) 10:41:29.69
逆にインデント固定で困ったのは
PyQtとかで入れ子になっているレイアウトを書くときに
ここの中身は一列ずらして書きたいなってときぐらいだな
普段は{}はもうめんどいだけなんだがなあ
742デフォルトの名無しさん:2013/10/13(日) 10:42:42.65
redmineは多機能すぎてあそこまでのはいりません
1〜5人程度で利用するのでそこまで大規模な管理ツールでなくてもいいんですが
trac以外にプロジェクト管理ってありませんか?
743デフォルトの名無しさん:2013/10/13(日) 11:09:52.67
>>741
if True:
744デフォルトの名無しさん:2013/10/13(日) 11:21:38.81
if Trueでずらしてるの見たことないな…
745デフォルトの名無しさん:2013/10/13(日) 11:22:39.78
try:
でいい
746デフォルトの名無しさん:2013/10/13(日) 11:30:12.32
>>658
アメリカのアマゾンのサイトのレビューを見る限り、賛否両論
俺は使って失敗したと思ったよ
747デフォルトの名無しさん:2013/10/13(日) 14:53:54.55
>>745
エラーの可能性もないのにtryで括ったら お前どういうこと?って呼び出されたんですが
748デフォルトの名無しさん:2013/10/13(日) 15:04:49.62
>>747
誰に?
749デフォルトの名無しさん:2013/10/13(日) 15:28:02.56
家庭教師
750デフォルトの名無しさん:2013/10/13(日) 15:35:43.36
tryならif Trueのほうがマシだな
751デフォルトの名無しさん:2013/10/13(日) 15:37:41.48
代入文とか使わないなら括弧で囲むだけでインデント自由やで
752デフォルトの名無しさん:2013/10/13(日) 15:43:02.15
>>744
お前が経験不足なだけ
753デフォルトの名無しさん:2013/10/13(日) 15:53:54.50
そうやラッパー書いてwith文使えばいいんや!
754デフォルトの名無しさん:2013/10/13(日) 16:05:56.21
import os
ってかくと
os.pathのメソッドも使えるんですがなぜですか?
osとos.pathは別物じゃないのでしょうか?
755デフォルトの名無しさん:2013/10/13(日) 16:07:37.14
from os import path
と書いてる人は見たことないな
756デフォルトの名無しさん:2013/10/13(日) 16:08:41.10
下げたいだけならif True:じゃないか??この用途でtry:使いたいか?
757デフォルトの名無しさん:2013/10/13(日) 16:12:33.06
つまり
os.pathはosの中に含まれてるって事ですか
ってことは
import os
import os.path
って書くと無駄に書いてることになるので
import os
こうやって1つだけでいいのですかね
758デフォルトの名無しさん:2013/10/13(日) 16:17:51.31
import os.*
759デフォルトの名無しさん:2013/10/13(日) 16:20:08.57
なんかまぎらわしいですね、
ドキュメントでosとos.pathのページ分けなくてもいいんじゃないかと思いました
760デフォルトの名無しさん:2013/10/13(日) 16:28:07.68
>>757
os.pathに関してはそれは正しいが
そうならないモジュールもある

具体的には
import hoge.fuga;
しないと hoge.fuga が使えない
import hoge;
だけじゃダメなのもある
761デフォルトの名無しさん:2013/10/13(日) 16:29:46.25
__init__.py
762デフォルトの名無しさん:2013/10/13(日) 16:46:15.91
そのへんの仕様は統一されてもいい気がするんですが
議論などはされてないのでしょうか?
763デフォルトの名無しさん:2013/10/13(日) 16:59:30.55
20年くらい前にされたんじゃね?
764デフォルトの名無しさん:2013/10/13(日) 17:12:49.25
何で終わりの挨拶妥協したん
寝るわけないじゃん!
765デフォルトの名無しさん:2013/10/13(日) 17:16:12.35
間違えた
766デフォルトの名無しさん:2013/10/13(日) 20:20:03.95
俺if 1:たまに使うんだけど。
if 0:にすればスキップされるから#連打の代わりになるし。
767デフォルトの名無しさん:2013/10/13(日) 20:36:36.10
比較するときに== とかの等号かisがありますが
Noneと比較する場合はisを使えってあります
なぜですか?
768デフォルトの名無しさん:2013/10/13(日) 20:39:21.84
rubyとpythonどっち勉強するのがいいの?
今から始める場合
769デフォルトの名無しさん:2013/10/13(日) 20:51:34.01
>>767
Noneは概念であって値ではないからじゃねーの?

>>768
せめて直近で何やりたいのか書けよ。
いずれ役に立つ方をとか抜かすんであれば
両方やってみて自分で考えろ。
770デフォルトの名無しさん:2013/10/13(日) 20:59:40.67
PHPに決まってんだろ
771デフォルトの名無しさん:2013/10/13(日) 21:03:02.16
>>768
このスレの答えは決まっている
pythonだ
772デフォルトの名無しさん:2013/10/13(日) 21:17:47.67
>>769
簡単なゲームを作るとこから始めたい
773デフォルトの名無しさん:2013/10/13(日) 21:21:11.78
数字当てゲーム
774デフォルトの名無しさん:2013/10/13(日) 21:21:44.29
>>772
基本終わったらこれ読めばいいんじゃないの
http://inventwithpython.com/
775デフォルトの名無しさん:2013/10/13(日) 21:21:45.97
ゲームならpythonの方が良いな
776デフォルトの名無しさん:2013/10/13(日) 21:22:47.19
なんでここで聞くんだ?
777デフォルトの名無しさん:2013/10/13(日) 21:24:38.14
>>767
isはNoneという固有のオブジェクトと同一かどうかの比較だから。
たとえばTrueだと、id(1 ==1)とid(True)は同じ値が帰ってくる。

==はよく知らんけど、__eq__()メソッドが呼び出されるから、クラスの実装に依存してしまう
のかもしれない。けどほんとこれはわからん。誰かおしえて
778デフォルトの名無しさん:2013/10/13(日) 21:30:41.72
not is None
と書くのと
is not None
と書くのは
意味が違いますか?
779777:2013/10/13(日) 21:34:29.28
一行ですむからTrue例に使ったけど、Noneならこういうこと
def get_none():
  return

id(get_none())とid(None)は同じidが帰ってくる
780デフォルトの名無しさん:2013/10/13(日) 21:38:02.21
>>778
意味が違うかどうかの前に、not is Noneって文法正しい?
簡単な式でいいから書いてよ
781デフォルトの名無しさん:2013/10/13(日) 21:39:58.12
not x is None
x is not None
ってことじゃね
782デフォルトの名無しさん:2013/10/13(日) 21:41:01.25
notとis並べるとき順番で結果変わるの?
俺は初心者だからそこまで知らないから誰かたのむ
783デフォルトの名無しさん:2013/10/13(日) 21:56:35.15
x is not Noneは、x is Notの値を反転させてるし、一緒だと思う
784783:2013/10/13(日) 21:57:08.59
x is Noneだった
785デフォルトの名無しさん:2013/10/13(日) 22:01:56.76
日本語のリファレンス
>演算子 not は、引数が偽である場合には 1 を、それ以外の場合には 0 になります。
ってなってるけど、英語の方は
>The operator not yields True if its argument is false, False otherwise.

演算子 not は、引数が偽である場合には 真 を、それ以外の場合には 偽 になります。
のがええな。ちょい古いのかな?
786デフォルトの名無しさん:2013/10/13(日) 22:02:59.92
>>767
pythonはNoneと等しいオブジェクトを作ることができる
オブジェクトがNone自身であるか確かめるのにはisを使う

>>> class Hoge(object):
... def __eq__(self, other):
... if other is None:
... return True
... return self == other
...
>>> a = Hoge()
>>> a == None
True
>>> a is None
False
787デフォルトの名無しさん:2013/10/14(月) 06:21:00.41
is notもnot inもそれで一つの演算子だから…と言いたいところだが
dis.disでPythonバイトコードを見る限り最適化されているのか
オペランドを挟むように書いてもCOMPARE_OPのみでUNARY_NOTは現れないので同一と言える

ちなみにPython2系ではNoneは定数でもTrue/Falseは実際には定数でなく
2.7.5でも最適化が働かないのでifやwhileの無条件実行には1を使いましょう
788デフォルトの名無しさん:2013/10/14(月) 09:06:25.05
>>768
ルビー(↑)

wwww
789デフォルトの名無しさん:2013/10/14(月) 09:18:37.53
つまり
a is True
a is False
a is None
a is not True
a is not False
a is not None
ってやるのが正しくて
a == True
a == False
a == None
a != True
a != False
a != None
はやっちゃいけないってことでファイナルアンサーですか?
790デフォルトの名無しさん:2013/10/14(月) 09:43:18.15
数学で言ったら公式の意味を知らず記憶するんじゃなくて
性質を理解すればおk

おのずとそのとき使うべきものがわかる
791デフォルトの名無しさん:2013/10/14(月) 09:45:37.14
>>789
それでいいよ
792デフォルトの名無しさん:2013/10/14(月) 10:03:04.28
>>789
>はやっちゃいけないってことでファイナルアンサーですか?
いいえ、None、False、True、__debug__に限っては"=="とかでも大丈夫
だけど、自分で書く時はisを使う癖を作っとくとええよ

"名前 None、False、True、__debug__ は再代入できない (これらに対する代入は、たとえ属性名としてであっても SyntaxError が送出されます) ので、これらは「真の」定数であると考えられます。"
(http://docs.python.jp/3.3/library/constants.html)
じゃあ、それ以外は?
793デフォルトの名無しさん:2013/10/14(月) 13:29:07.61
可変長引数のことで質問したいのですが,
例えば
def func(*args, **kwargs)
という関数があったとして,ここに入れる引数を予め変数に入れることってできますか?

func(1, 2, a=3, b=4)
と書くのを

l= [1,2,a=3,b=4]
func(l)
のように書きたいのですが
794デフォルトの名無しさん:2013/10/14(月) 14:52:14.47
無理ですな
リストや辞書は*と**で展開できるが
混じってるのは不可能

l= [1,2]
d= {'a':3,'b':4}
func(*l,**d)

これが限界
795デフォルトの名無しさん:2013/10/14(月) 15:25:24.67
>>794
ありがとうございます!
2つわけてやることにします
796デフォルトの名無しさん:2013/10/14(月) 21:22:05.27
俺PHPしか使えないんだけど、
今からPythonやるならやっぱり3系の方がいいのかな?
797デフォルトの名無しさん:2013/10/14(月) 21:46:08.10
>>796
日本語のドキュメントも整備されてきたし、フレームワークも対応終わってるから3系のほうがいいよ
言語の仕様とか標準パッケージも2よりよくなってる
798デフォルトの名無しさん:2013/10/14(月) 22:21:35.92
>>796
両方やればいいんじゃないかな
ここはこうなのね、と比較しながらやれるのでわかりやすい
799デフォルトの名無しさん:2013/10/14(月) 22:35:00.37
PHPで間に合ってるならPHPだけでいいだろ
なぜわざわざpythonなんてやりたくなったんだ
800デフォルトの名無しさん:2013/10/14(月) 23:04:39.00
では、PHPよりpythonがすぐれてるところを教えて下さい。
801デフォルトの名無しさん:2013/10/14(月) 23:10:07.12
名前がかっこいいインデント
802デフォルトの名無しさん:2013/10/14(月) 23:27:52.05
特にない
803デフォルトの名無しさん:2013/10/14(月) 23:29:42.84
>>800
シンプル
804デフォルトの名無しさん:2013/10/14(月) 23:37:09.00
>>800
まずPHPがクソ
805デフォルトの名無しさん:2013/10/15(火) 00:21:28.34
>>798
比較なんて両方を覚えないとできないよ
比較しながら勉強するのと、差異だけを取り込む勉強は違う

両方を同時にとか混乱するやろ
806デフォルトの名無しさん:2013/10/15(火) 00:22:10.34
>>804
そういうのよくないと思う
807デフォルトの名無しさん:2013/10/15(火) 00:31:58.23
この板にはろくな PHP スレがない
よって PHP はプログラミング言語としてろくなものではない(証明おわり)
808デフォルトの名無しさん:2013/10/15(火) 00:39:19.71
PHPスレはWebProg板が本拠地だから・・・(小声)
809デフォルトの名無しさん:2013/10/15(火) 00:41:58.36
phpはweb専用みたいなところあるしそもそもpythonとは比較にならないっていうか・・・
810デフォルトの名無しさん:2013/10/15(火) 00:58:08.84
php はやってるなんて恥ずかしくてひとに言えないです
811デフォルトの名無しさん:2013/10/15(火) 04:50:25.62
#でコメントアウトしてその後に漢字を書くとエラーになる、ってありますか?
812デフォルトの名無しさん:2013/10/15(火) 05:06:09.04
ある
だから行頭で#coding:utf-8を書きなさい
813デフォルトの名無しさん:2013/10/15(火) 05:06:09.31
ある
814デフォルトの名無しさん:2013/10/15(火) 05:07:10.33
何という時間に何というニアミスをしているんだ君達
815デフォルトの名無しさん:2013/10/15(火) 05:31:32.70
>>812
ありがとうございます。できました。
#coding:utf-8
これって、コメントアウト用のコマンド、との理解でいいでしょうか?
816デフォルトの名無しさん:2013/10/15(火) 05:34:38.85
文字列変数head内に「店」があったら、削除したいのですが、
head = head.replace("店", "")
これでは間違っているのでしょうか?
エラーにはなりませんが、店が削除されません。
817デフォルトの名無しさん:2013/10/15(火) 05:38:35.13
たとえば、
六本木店という文字列がheadの中に入っていたら、六本木
としたいのです。
818デフォルトの名無しさん:2013/10/15(火) 08:49:59.70
>>815
http://www.python.org/dev/peps/pep-0263/
ソースファイルの一行目か二行目に # coding: <encoding> が書いてあると
Python のパーサはそれをソースのエンコーディングを指定する特殊なコメントとして扱う

>>817
それで間違ってないけどもしうまくいかないなら
head と "店" のエンコーディングが食い違ってるとかじゃないか
819デフォルトの名無しさん:2013/10/15(火) 10:08:21.82
ローカルで動作するのにうpしたらダメで
ftpでうpする時に勝手にコード変換されてたのが原因
というのが実際にあった
820デフォルトの名無しさん:2013/10/15(火) 10:28:56.36
バカスレw
死ねゴミ共がw
821デフォルトの名無しさん:2013/10/15(火) 10:48:57.67
enc = 'utf-8' # HTML 内の charset を見る
head = head.decode(enc).replace(u"店", u"").encode(enc)
822デフォルトの名無しさん:2013/10/15(火) 11:03:55.42
>>815
シェバングでぐぐると良いよ
823デフォルトの名無しさん:2013/10/15(火) 12:43:57.19
シーバンって読んでた
824デフォルトの名無しさん:2013/10/15(火) 12:48:12.09
黄金の国
825デフォルトの名無しさん:2013/10/15(火) 20:59:12.92
GAEで試そうと思ってたら3.xに対応してないみたいなんですけど他に無料のとこないんですか
826デフォルトの名無しさん:2013/10/15(火) 21:04:14.51
OpenShift
827デフォルトの名無しさん:2013/10/15(火) 21:04:43.39
使ったことないけどdotCloud
828デフォルトの名無しさん:2013/10/15(火) 22:05:39.16
>>818-822
ありがとうございます。文字コードうんぬんは難しいですね。
829デフォルトの名無しさん:2013/10/15(火) 22:44:01.04
>>828
そこでPython3ですよ
インプット、アウトプットのとき指定するだけで、文字列を処理する時は意識しなくていい
830デフォルトの名無しさん:2013/10/15(火) 23:34:40.23
>>829
なるほど。
831デフォルトの名無しさん:2013/10/16(水) 01:17:58.89
このスレ見て初めてのPython買って来たんだが、
初めてのPythonを読んで、全てを理解したらPythonプログラマを名乗れるだけの力を俺は持っていると思っていいのか?
832デフォルトの名無しさん:2013/10/16(水) 01:19:27.35
あれちょっと古いからそこまで躍起になって理解しようとしなくていいですよ
833デフォルトの名無しさん:2013/10/16(水) 01:25:58.19
頻繁にほんの名前あがるけど著者のステマくせえ
834デフォルトの名無しさん:2013/10/16(水) 01:30:06.64
Mark Lutzこんなスレにまでステマしに来てるのか最低だな
835デフォルトの名無しさん:2013/10/16(水) 02:10:29.97
お買い上げありがとうございます。
836デフォルトの名無しさん:2013/10/16(水) 03:36:49.00
おらいりません
837デフォルトの名無しさん:2013/10/16(水) 18:45:15.53
shebang
838デフォルトの名無しさん:2013/10/16(水) 19:14:55.70
Windows版のCPythonのインストーラーで3.3を入れてるんですけど
この状態で3.4を入れると上書きされちゃうのでしょうか?
839デフォルトの名無しさん:2013/10/16(水) 19:17:13.38
される
3.4はまだアルファなのに入れる気なの?
剛毅〜
840デフォルトの名無しさん:2013/10/16(水) 19:18:17.31
そうでしたか
わかりました
841デフォルトの名無しさん:2013/10/16(水) 22:21:10.89
バッチ処理を開発する場合にオススメのフレームワークってありますか
842デフォルトの名無しさん:2013/10/17(木) 21:53:34.33
どれくらいの処理まで一行にまとめるのがいいと思いますか?
たとえば、テキストファイルオブジェクトから一行の一部を抜き出す処理を書くとき
param = fp.readline().split(sep="-")[0]
って書いたらまとめすぎですか?
line = fp.readline()
param = line.split(sep="-")[0]
みたいに分けた方がいいですか?
843デフォルトの名無しさん:2013/10/17(木) 22:19:07.95
感覚的なもんだから例えはあんま意味ないと思うんだよね
844842:2013/10/17(木) 22:30:00.12
そうですね
845デフォルトの名無しさん:2013/10/17(木) 23:29:41.16
俺だったら
params = fp.readline().split(sep="-")
param = params[0]
一行の中でリストになったり要素になったりするのがあんま好きじゃない
846842:2013/10/18(金) 00:00:40.04
>>845
確かに、リストにしておいたほうがいろいろ融通ききそうですね
ありがとう
847デフォルトの名無しさん:2013/10/18(金) 07:50:49.75
チーム開発ならレビュー時に diff が読み難くならない程度に
sep が変わる可能性があって、先頭という仕様が変わらないなら >>842 の下のコードが好きかな

ライブラリーのコーディング規約とか読むと勉強なるよ
848デフォルトの名無しさん:2013/10/18(金) 16:10:29.45
pythonで簡単なパズルゲームを作ってみたいのですが
便利な環境、ライブラリ等はありますか?
849デフォルトの名無しさん:2013/10/18(金) 16:44:36.47
年と月のタプルを要素に持つリストを年、月の優先順位でソートしようとしています。↓のコードです
sorted([(2013, "Feb"), (2012, "Jan"), (2013, "Apr")], key=operator.itemgetter(0, 1))

月の部分にはhttp://docs.python.jp/3.3/howto/sorting.htmlの一番下のような辞書を使用して
1~12月まで並べようとしていますが、詰んでいます
月の部分は数字に変換するなりして、比較しやすい形に持たせたほうがいいですか?
それとも、何か良いやり方ありますか?
850デフォルトの名無しさん:2013/10/18(金) 17:30:18.78
wxPython いいよね
851デフォルトの名無しさん:2013/10/18(金) 17:40:01.95
>>849
m = {'Jan': 1, 'Feb': 2, 'Mar': 3, 'Apr': 4}
sorted([(2013, "Feb"), (2012, "Jan"), (2013, "Apr")], key=lambda i: (i[0], m[i[1]]))

[(2012, 'Jan'), (2013, 'Feb'), (2013, 'Apr')]
852デフォルトの名無しさん:2013/10/18(金) 17:43:49.84
>>849
datetime.datetime.strptimeを使う方法

>>> import datetime
>>> data = [(2013, 'Feb'), (2012, 'Jan'), (2013, 'Apr')]
>>> def keyfunc(ym):
... return datetime.datetime.strptime('{:04d}{}'.format(*ym), '%Y%b')
...
>>> sorted(data, key=keyfunc)
[(2012, 'Jan'), (2013, 'Feb'), (2013, 'Apr')]
853デフォルトの名無しさん:2013/10/18(金) 17:46:42.86
strptime ってすごく遅い気がするの
854デフォルトの名無しさん:2013/10/18(金) 17:47:51.26
そうだぬ
855849:2013/10/18(金) 20:13:18.78
>>851-852
こんなやり方があるんですね。ありがとう。

個人的には日にちで比較してる>>852が好きなんですが、確かにちょっと遅かったです
10倍ぐらい違いました
856デフォルトの名無しさん:2013/10/18(金) 21:13:27.80
これぞ符号的プログラミング
857デフォルトの名無しさん:2013/10/18(金) 22:17:36.30
なんとなくPython3系に乗り遅れて未だに2系を使ってるんだが、やっぱ無理してでも3系に移行した方がいいのか?
858デフォルトの名無しさん:2013/10/18(金) 23:35:14.53
>>857
>無理してでも
の無理の内容にもよる
ほとんど3しか触ったことないけど、技術的な知識なら、とりあえずDive in to python 3読んでおいたらいいと思う
システムの移行的な話なら、可能な限り2to3が固まるのを待つのがいいかもしれない
3.3になってからも、移行を促すような仕様変更が入ってるし

でも、早めに触って、print なんちゃらって書いてsyntax errorで怒られるないように慣れておくのもありだと思う
859849:2013/10/18(金) 23:44:57.70
>>856
質問書いた時点では、重複のあるリストだったので遅かったんですけど
sqlite3のドキュメントちゃんと読んだら、selectするときに重複はぶけるのわかったのでstrptimeでも大丈夫になりました
下手な頭使うより、ドキュメントよく読むべきでした
860デフォルトの名無しさん:2013/10/19(土) 00:26:53.68
pygameで
screen = pygame.display.set_mode(SIZE,RESIZABLE)
として、実行中にウィンドウのサイズを変更した場合、変更後のウィンドウのサイズはどうやって取得するんでしょうか。
上述の状態でscreen.get_size()としてみても初期値を返されました。
861デフォルトの名無しさん:2013/10/19(土) 00:49:45.01
3.3からはじめたけど2.7が書けないよ
paizaは2.7で書かせるから3.3から勉強したぼくにはつらいです
862デフォルトの名無しさん:2013/10/19(土) 10:02:15.01
>>75
それWebサーバーってかアプリケーションサーバーだろ
PythonだとgunicornとかuWSGI

普通は単体で用いるものじゃなく上位にApacheやnginxでロードバランサーをおく
863デフォルトの名無しさん:2013/10/19(土) 10:45:48.20
これまたすんごい遅レスだな
864デフォルトの名無しさん:2013/10/19(土) 10:52:44.89
ここは超初心者用のスレだから
865デフォルトの名無しさん:2013/10/19(土) 11:44:40.52
http://www.python.jp/ってhttp://www.python.org/とは別
5月に3.3.2でたこととかのってないけど
python.orgから見たら、どういう関係になるんですか?
866デフォルトの名無しさん:2013/10/19(土) 11:47:12.56
python.jpは日本のファンサイト
本家とは関係ない
867デフォルトの名無しさん:2013/10/19(土) 14:41:40.53
python.jp は糞
python.org 見るべき
868デフォルトの名無しさん:2013/10/20(日) 03:11:10.96
>>848
pygame
869デフォルトの名無しさん:2013/10/20(日) 03:14:54.68
868で気づいたけどゲーム作るならkivyのほうがいいのでは
pygameに乗っかってるやつだけど
870デフォルトの名無しさん:2013/10/21(月) 03:11:32.45
こいつの2番目のforをリスト内包表記にしたいんやけど、
どうすればええんやろ?

def hoge():
ans = 0
for line in open('data.txt'):
cols = line.rstrip().split(',')
nums = [int(col) for col in cols]
for i in nums:
ans += i
print ans

hoge()
871デフォルトの名無しさん:2013/10/21(月) 03:24:41.12
>>870
ans += sum(int(col) for col in cols)
872デフォルトの名無しさん:2013/10/21(月) 03:51:34.65
>>871
おお、sumの存在を忘れてたwww
[]忘れてるけどサンクス
873デフォルトの名無しさん:2013/10/21(月) 03:52:53.59
忘れてるんじゃないいらないんだよ
874デフォルトの名無しさん:2013/10/21(月) 03:55:18.77
横からだけどジェネレータ式だから [] いらないよ

>>> a = (e for e in [1,2,3])
>>> a
<generator object <genexpr> at 0x7f5d84dc34b0>
>>> a.next()
1
>>> a.next()
2
>>> a.next()
3
>>> a.next()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
875デフォルトの名無しさん:2013/10/21(月) 04:34:40.47
>>873
ゴメン俺がインデントし忘れて普通にエラー出てるだけだったわwww
876デフォルトの名無しさん:2013/10/21(月) 06:51:21.15
python使いは少ないって聞いてたが、このスレ見る限り沢山いるみたいだな。
安心した。
877デフォルトの名無しさん:2013/10/21(月) 07:00:15.46
おまいら朝早いな
878デフォルトの名無しさん:2013/10/21(月) 08:49:08.19
パイソナーの朝は早い。
879デフォルトの名無しさん:2013/10/21(月) 11:06:33.32
今日本って朝だっけ?
880デフォルトの名無しさん:2013/10/21(月) 11:25:51.66
>>879
TimeZone は朝鮮とと同じだよ
881デフォルトの名無しさん:2013/10/21(月) 12:14:21.45
京ぽんと読んでしまった
死にたい
882デフォルトの名無しさん:2013/10/21(月) 12:17:18.79
>>879
今 ny と sf どっちいんの?
883デフォルトの名無しさん:2013/10/22(火) 01:47:31.28
SVMを使って多クラス識別をしたいのですが、libsvmで出来ますか?
ググったのですが、2クラス識別しか見つからなかったので
どうかよろしくお願いします
884デフォルトの名無しさん:2013/10/22(火) 02:22:18.25
まず公式に書いてあるだろうが
英語を読め
885デフォルトの名無しさん:2013/10/22(火) 12:25:59.13
pythonを使いはじめて、オブジェクト指向の意味がようやくわかったわ
886デフォルトの名無しさん:2013/10/22(火) 16:44:12.66
rubyと違ってpythonのオブジェクト指向は後付だけどな
逆にそれがbeginnerには判りやすさにつながってるのかもな
887デフォルトの名無しさん:2013/10/22(火) 19:47:18.75
オブジェクト指向の理解に言語関係ない気がする

GUIやゲーム作ってたら嫌でもすぐ理解するけど
学術計算やらSQL叩くビジネスロジックばっか組んでたら何語使おうがオブジェクト志向なんて邪魔なだけ
88857:2013/10/22(火) 19:50:56.80
粒度にもよると思うが...
889デフォルトの名無しさん:2013/10/22(火) 19:54:49.87
この手の話好きな奴は好きだよなあ
火種にしかならんのに
890デフォルトの名無しさん:2013/10/23(水) 00:26:43.14
CやRubyのsprintみたいなフォーマットってできますか?

123のような数字を000123みたいに予め桁数を決めておいて、上の桁を
0で埋めた文字列を作りたいのですが
Rubyならsprintf("%06d",123)とやるような操作です。
891デフォルトの名無しさん:2013/10/23(水) 00:29:11.43
"%06d" % 123
892デフォルトの名無しさん:2013/10/23(水) 00:29:23.58
print '%x' % 100
893デフォルトの名無しさん:2013/10/23(水) 00:51:42.73
>>891
サンクス。出来ました。
894デフォルトの名無しさん:2013/10/23(水) 15:59:03.82
iPython 入れてみたけどこれすごいね。
895デフォルトの名無しさん:2013/10/23(水) 16:12:31.00
褒め殺しか
896デフォルトの名無しさん:2013/10/24(木) 07:52:14.97
すごいだけでは、誉めてるかわからん
897デフォルトの名無しさん:2013/10/24(木) 21:20:13.91
■test1.py
import test2
test2.sample()
■test2.py
def sample():
print(1)

test1.pyからtest2.pyのimportはできてるのに
sample()を実行すると
test2.view()
AttributeError: 'module' object has no attribute 'sample'

ってエラーになります
898デフォルトの名無しさん:2013/10/24(木) 21:24:21.45
test2.viewってどっから出てきたん
899デフォルトの名無しさん:2013/10/24(木) 21:26:23.32
すいません、書き込むときにコピペと手打ちでごちゃごちゃまぜになってしまいました
test2.view()のところはtest2.sample()です
900デフォルトの名無しさん:2013/10/24(木) 21:31:53.09
まずそのtest2.pyを本当にインポートできてんのか
import文でエラーが出ないのは根拠にならんぞ

test2.pyで何か表示するなり
sys.modules確認するなりしたか?
901デフォルトの名無しさん:2013/10/24(木) 21:47:54.81
def sampleをif __name__=='__main__'の中に入れちゃってるとかはないよね?
902デフォルトの名無しさん:2013/10/24(木) 21:50:55.40
test2.sample()の代わりに↓
print(dir(test2))
903デフォルトの名無しさん:2013/10/24(木) 21:57:45.51
.pyc が残ってるとか
904デフォルトの名無しさん:2013/10/24(木) 22:26:44.72
両ファイルとも同じディレクトリにあるのでimportは問題ないです
if __name__=='__main__'は書いてないです
dirで確認したのですが何故かsampleが見つかりません。
同じディレクトリの中にcythonで作ったいろいろファイルがあったので削除したら実行できました
pycみたいな拡張子のファイルがあったかもしれませんがそれがあるからダメだったんでしょうかね?原因がわかりませんが解決しました
905デフォルトの名無しさん:2013/10/24(木) 22:31:14.82
test2.pyd読んでたんだろうな
作業場はきれいにしておかないとこういうことが起こる
906デフォルトの名無しさん:2013/10/24(木) 23:21:48.40
クラス名と同じ名前のファイルが実行ディレクトリにあったのに気づかず、小一時間悩んだことある
90757:2013/10/24(木) 23:33:08.66
おらも、トラブって、pythonを学んだ。
908デフォルトの名無しさん:2013/10/24(木) 23:35:57.01
初歩的な質問すみません。
PyQtを使用しています。
treeViewのツリーを全て展開した状態で立ち上げたいのですが
どう書けばよいのでしょう?
expandAllを追加したらできるかと思ったのですが駄目でした。
909デフォルトの名無しさん:2013/10/25(金) 11:23:59.96
コードを張ってください
あとバージョン
910デフォルトの名無しさん:2013/10/25(金) 11:31:46.25
立ち上がったらシグナル送ればいいだけだろ
911デフォルトの名無しさん:2013/10/25(金) 12:50:47.62
んなシグナルあったか?
912デフォルトの名無しさん:2013/10/25(金) 19:49:47.00
ググったらできました!ありがとうございまいた
913デフォルトの名無しさん:2013/10/25(金) 20:16:11.69
winxp32ビットでバージョン2.7.5のpythonを使っています。
で、
# coding: utf-8
jstr = u"日本語"
print jstr
を実行すると、
line 2
jstr = u"日本語"
SyntaxError: (unicode error) 'utf8' codec can't decode byte 0x93 in position 0:
invalid start byte
と、
エラーになってしまいます。
どこが悪いのでしょうか?
914デフォルトの名無しさん:2013/10/25(金) 20:17:56.87
>>913
そのスクリプトをUTF-8で保存してない。
あるいは一行目を自分が使っている文字コードに合わせて修正する。
915913:2013/10/25(金) 20:24:09.48
>>914
> そのスクリプトをUTF-8で保存してない。
ありがとうございます。これであたりでした。
91657:2013/10/25(金) 21:38:54.52
openCV触ってみたが、cで扱った時よりか大分楽だな。
インストールからして凄く楽々
開発も楽々

ちっくら、惚れた
917デフォルトの名無しさん:2013/10/26(土) 13:11:37.31
C至上主義の皆様にこの楽さが伝わらないのが
もどかしいぜ…
arrayで好き放題行列計算して、一発で画像出力できる
このルーズさが堪らん。
918デフォルトの名無しさん:2013/10/26(土) 13:35:28.38
つまりマルチリンガルな俺最強、と
919デフォルトの名無しさん:2013/10/26(土) 13:51:17.77
numpy最高
920デフォルトの名無しさん:2013/10/26(土) 14:56:00.06
「C++万歳!万歳!」と叫んでいた俺が、ある日Pythonに触れたところ、目から鱗が落ちたのを思い出すな。
PythonとC++を橋渡しするためのBoostライブラリもあるし、
Python使ってもいいかなって認識だったんだけど、
あまりの便利さに今はPythonばっかり使っている。


ところで
import os, os.path
のように書くけど、どうしてosをインポートしただけじゃos.pathがインポートされないの?
そういうもんじゃないのかな。
921デフォルトの名無しさん:2013/10/26(土) 15:44:05.40
それやると walk がぶつかるからやったらだめ
922デフォルトの名無しさん:2013/10/26(土) 16:04:46.57
importされるよ
http://codepad.org/f5HcZ2Uz
923デフォルトの名無しさん:2013/10/26(土) 16:29:12.21
たぶんパッケージimportした時と間違えているのだろう
924920:2013/10/26(土) 20:12:10.56
あれ?むむ?なんか勘違いしているようだ。

俺の環境でも
import os
os.path.abspath('.')
で普通に通るわ。

どこかの初心者向けサイトでimport os, os.pathって書いてあるのを見たような気がしたが。

みなさんありがとうございます。
925デフォルトの名無しさん:2013/10/26(土) 20:54:58.66
初心者が書いているのだろう
926デフォルトの名無しさん:2013/10/26(土) 21:27:09.48
927920:2013/10/26(土) 22:50:26.24
>>926
ごめん
ちゃんと見ていなかった

本当にごめん
大変申し訳ございませんでした。
928デフォルトの名無しさん:2013/10/27(日) 01:13:15.98
ソース上では os.path は os の中に含まれてるからな。
929デフォルトの名無しさん:2013/10/27(日) 01:22:46.12
どうしても自分の力では解決できませんでした。教えていただけたらうれしいです
Python2.7、windows7です。
Mechanizeを使って、ニコニコ動画にログインし、
任意の動画をマイリストするコードを書きたかったのですが、エラーが出てしまいます。

問題のコード↓
#coding: utf-8

import mechanize, urllib, urllib2

br = mechanize.Browser()
br.set_handle_robots(False)
br.open("http://www.nicovideo.jp/my/mylist")

br.select_form(nr=0)
br["mail_tel"] = "メールアドレス"
br["password"] = "パスワード"
br.submit()

br.open("http://www.nicovideo.jp/mylist_add/video/sm00000000")
print br.form
br.select_form(nr=0)
br["group_id"] = "new"
br["description"] = ""
br.submit()
次にエラーを書きます
930929:2013/10/27(日) 01:28:03.15
エラー↓
Traceback (most recent call last):
File "ファイル名.py", line 18, in <module>
br["group_id"] = "new"
File "build\bdist.win32\egg\mechanize\_form.py", line 2782, in __setitem__
File "build\bdist.win32\egg\mechanize\_form.py", line 1977, in __setattr__
File "build\bdist.win32\egg\mechanize\_form.py", line 1985, in _set_value
TypeError: ListControl, must set a sequence

この部分
br.open("http://www.nicovideo.jp/mylist_add/video/sm00000000")
print br.form
でNoneが返ってきちゃってるのでこの辺に原因があるのか?と
推測しているのですが結局解明できず…
よろしくお願いいたします
931デフォルトの名無しさん:2013/10/27(日) 01:36:40.50
>>929-930

ちょっとしたコードを試すならやっぱり『Codepad』が便利だなぁ | IDEA*IDEA
http://www.ideaxidea.com/archives/2011/04/codepad.html

こんな感じで書いてみて
932>>929-930:2013/10/27(日) 01:37:26.04
あ、Mechanizeあるからだめか?
933929:2013/10/27(日) 01:42:45.02
>>931-932
今やってみましたがダメでした
934デフォルトの名無しさん:2013/10/27(日) 02:12:26.21
>>933
それはすまソ
935デフォルトの名無しさん:2013/10/27(日) 02:29:32.11
>>929
http://wwwsearch.sourceforge.net/mechanize/
br["group_id"] = "new" を br["group_id"] = ["new"] にして
print br.form は br.select_form の直後に置くとどうなる?
936929:2013/10/27(日) 02:48:26.30
>>935
ごめんなさい…英語がとても苦手で…

>>print br.form は br.select_form の直後に置くとどうなる?
フォームの内容を表示させることに成功しました!
しかしエラーは相変わらずです↓
Traceback (most recent call last):
File "ファイル名.py", line 18, in <module>
br["group_id"] = ["new"]
File "build\bdist.win32\egg\mechanize\_form.py", line 2782, in __setitem__
File "build\bdist.win32\egg\mechanize\_form.py", line 1977, in __setattr__
File "build\bdist.win32\egg\mechanize\_form.py", line 1998, in _set_value
File "build\bdist.win32\egg\mechanize\_form.py", line 2021, in _single_set_val
ue
File "build\bdist.win32\egg\mechanize\_form.py", line 2006, in _get_items
mechanize._form.ItemNotFoundError: insufficient items with name 'new'
937929:2013/10/27(日) 03:08:16.79
print br.formでフォームを表示した時に
<SelectControl(group_id=[個別マイリストごとのIDがいくつかならんでいる, default])>
となってたので、
br["group_id"] = ["new"] を
br["group_id"] = ["default"]
にしたら上のエラーは出なくなりました。
938929:2013/10/27(日) 03:09:12.26
代わりに
Traceback (most recent call last):
File "ファイル名.py", line 20, in <module>
br.submit()
File "build\bdist.win32\egg\mechanize\_mechanize.py", line 541, in submit
File "build\bdist.win32\egg\mechanize\_mechanize.py", line 203, in open
File "build\bdist.win32\egg\mechanize\_mechanize.py", line 230, in _mech_open
File "build\bdist.win32\egg\mechanize\_opener.py", line 193, in open
File "build\bdist.win32\egg\mechanize\_urllib2_fork.py", line 349, in _open
File "build\bdist.win32\egg\mechanize\_urllib2_fork.py", line 332, in _call_ch
ain
File "build\bdist.win32\egg\mechanize\_urllib2_fork.py", line 1201, in unknown
_open
urllib2.URLError: <urlopen error unknown url type: javascript>
と出るようになってしまいました
939デフォルトの名無しさん:2013/10/27(日) 03:42:53.90
エラー出る場所分かってるんだから、そこでデバッガで止めて
brの中身を確認すればいいじゃないか。
940デフォルトの名無しさん:2013/10/27(日) 10:07:33.00
最近ニコ動のAPIバージョン変わってなかったか
941デフォルトの名無しさん:2013/10/27(日) 12:11:58.83
途中まで追いかけたけど
<form id="box_mylist_add" action="javascript:void(0);">
になってるね
942デフォルトの名無しさん:2013/10/27(日) 12:19:06.23
jQuery("#box_mylist_add").submit(function () {
以下が呼ばれて

var addMylist = function (params) {
var responder;
if (params.group_id == "default") {
responder = NicoAPI.Deflist.add(params.item_type, params.item_id, params.description);
} else {
responder = NicoAPI.Mylist.add(params.group_id, params.item_type, params.item_id, params.description);
}
が実行されるようにすれば良いんだな

中身はこれか
<script type="text/javascript" src="http://res.nimg.jp/js/nicoapi.js"></script>
943デフォルトの名無しさん:2013/10/27(日) 12:22:02.92
板違い
巣に帰れ
消えろ
http://kohada.2ch.net/php/
944デフォルトの名無しさん:2013/10/27(日) 12:40:34.49
NicoAPI.Deflist.add() の中身は

return NicoAPI.call(
"/api/deflist/add",
{ "item_type": item_type,
"item_id": item_id,
"description": description });

しかやってないけど
NicoAPI.call() の中で token とか使ってセッションハイジャック防止っぽいことやってるね
これ以上は面倒なので
mechanize から Javascript 呼ぶのが楽かな
945デフォルトの名無しさん:2013/10/27(日) 12:44:43.29
946デフォルトの名無しさん:2013/10/27(日) 13:45:26.36
>>939-945
成功しました!
ありがとうございました。
947929:2013/10/27(日) 17:22:25.34
946の方も私と同じことに悩んでいたんですか?
私は今からseleniumに挑戦してみるのでまだ成功はしていません
紛らわしい書き込みはご遠慮いただければと思います
948929:2013/10/27(日) 18:39:41.90
selenium試そうとしたけどインストールできない

pipインストールしなきゃ

できないからその前にeasy_installをインストールしなきゃ

ん?Setuptoolsはインストールされてるよと言われた。
でもpipインストールできない。なぜ?(今ここ)
949デフォルトの名無しさん:2013/10/27(日) 18:44:36.26
ソースコードtarball取ってきてsetup.py installやっても駄目?
https://pypi.python.org/pypi/pip/1.4.1
950929:2013/10/27(日) 18:49:15.69
>>949 ごめんなさい。超初心者なので、
・ソースコードtarball取ってくる
・setup.py installやる
の意味が分かりません…
951デフォルトの名無しさん:2013/10/27(日) 18:52:54.41
↓をダウンロードしてして
https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#md5=6afbb46aeb48abac658d4df742bff714
tar.gzって形式になってるので展開して
その中にsetup.pyって名前のファイルがあるので
そのフォルダにコマンドプロンプトで移動して
py -3 setup.py install
952デフォルトの名無しさん:2013/10/27(日) 18:53:47.04
あ、2.7か。じゃあ
python setup.py install
でいいです
953デフォルトの名無しさん:2013/10/27(日) 19:32:05.24
横からだけどPythonのモジュールのインストール方法って
それぞれみんな勝手に色々バラバラってイメージがある
python setup.py install
pip install
easy_install
その他

なんでnode.jsみたく統一されないんだろ

あとアンインストールも標準での方法がなかったり
954929:2013/10/27(日) 19:50:29.29
>>951-952 親切に教えてくださってありがとうございます。
pipのインストールに成功し、seleniumをインストールするところまでいけました!
引き続きやってみます
955デフォルトの名無しさん:2013/10/27(日) 20:39:00.50
最終的にpython setup.py installやってるのはどれも同じだよ
pipとeasy_installはその手前でいろいろやってくれるだけ
956929:2013/10/27(日) 20:41:55.78
selenium IDEを起動しました。が、
動作を記録してくれません。
「Table view is not available with this format.」
と出ています
ttp://d.hatena.ne.jp/rti7743/20090913
を見ながらやっています
957デフォルトの名無しさん:2013/10/27(日) 20:55:31.59
僕は自転車で疲れたので寝ます
958デフォルトの名無しさん:2013/10/27(日) 21:05:22.53
じゃあぼくは警察官になります
959デフォルトの名無しさん:2013/10/27(日) 21:09:35.71
>>956 スレ違い
960デフォルトの名無しさん:2013/10/27(日) 23:01:14.29
961デフォルトの名無しさん:2013/10/27(日) 23:43:12.59
pylonsを利用してますが、controllerを修正してファイルを入れ替えても新しいファイルで更新されず、何回かブラウザをリフレッシュすると反映されます。
pycファイルは常に消してるのになぜでしょうか。
ただアパッチのログは毎回出てるのでブラウザのキャッシュではなさそうなのですが…
962デフォルトの名無しさん:2013/10/27(日) 23:58:15.66
pyc消しても無駄
963929:2013/10/27(日) 23:59:28.68
seleniumの方、記録するまでいきましたが、
なんだかエラーが出ちゃって結局ダメでした

なので>>944で提案していただいた「mechanize から Javascript 呼ぶ」に挑戦します
でも現状何のことだか分かっていないので、時間がかかりそうです
964デフォルトの名無しさん:2013/10/28(月) 00:01:15.78
気長にな
日を改めたら意外と上手く行ったりするもんだ
965929:2013/10/28(月) 00:30:33.40
「mechanize から Javascript 呼ぶ」情報が英語のページばっかりで何が何やらです
もし分かる方いたら教えて下されば嬉しいです

>>944でtokenについても触れられていたので、そっちをあたってみたら
このページを見つけました
ttp://d.hatena.ne.jp/lolloo-htn/20110115/1295105845
ここから、tokenを取得する部分をもらって自分のコードに付け足してみたのですが
エラーが出てしまいました

次にコードを書きます
966デフォルトの名無しさん:2013/10/28(月) 00:32:14.99
>>962 どういうこと?
967929:2013/10/28(月) 00:33:22.00
#!/usr/bin/env python
#coding: utf-8

import mechanize, sys, re, cgi, urllib, urllib2, cookielib, xml.dom.minidom, time, json

def getToken():
html = urllib2.urlopen("http://www.nicovideo.jp/my/mylist").read()
for line in html.splitlines():
mo = re.match(r'^\s*NicoAPI\.token = "(?P<token>[\d\w-]+)";\s*',line)
if mo:
token = mo.group('token')
break
assert token
return token
968929:2013/10/28(月) 00:34:13.60
br = mechanize.Browser()
br.set_handle_robots(False)
br.open("http://www.nicovideo.jp/my/mylist")

br.select_form(nr=0)
br["mail_tel"] = "メールアドレス"
br["password"] = "パスワード"
br.submit()

token = getToken()

br.open("http://www.nicovideo.jp/mylist_add/video/sm0000000")
br.select_form(nr=0)
print br.form
br["group_id"] = ["default"]
br["description"] = ""
br.submit()
969929:2013/10/28(月) 00:36:01.58
エラーの内容↓
Traceback (most recent call last):
File "ファイル名.py", line 25, in <module>
token = getToken()
File "nico_login.py", line 13, in getToken
assert token
UnboundLocalError: local variable 'token' referenced before assignment
970デフォルトの名無しさん:2013/10/28(月) 00:51:59.84
>>965
そのサイトみつけたんだったら
mechanize 使わずに
そのサイトのやり方でいけるだろ
971デフォルトの名無しさん:2013/10/28(月) 00:54:03.67
token = getToken()

br.open("http://www.nicovideo.jp/mylist_add/video/sm0000000")

この2行で二回同じページにアクセスすることになるから
token変わっちゃうよ
972デフォルトの名無しさん:2013/10/28(月) 01:25:02.13
def getToken(uhtml):
for line in uhtml.splitlines():
m = re.match(r'^\s*NicoAPI\.token = "(?P<token>[\d\w-]+)";\s*', line)
if m:
token = m.group('token')
break
else: token = None
return token

br = mechanize.Browser()
br.set_handle_robots(False)
br.open("http://www.nicovideo.jp/my/mylist")

br.select_form(nr=0)
br["mail_tel"] = "メールアドレス"
br["password"] = "パスワード"
br.submit()

br.open("http://www.nicovideo.jp/mylist_add/video/sm0000000")
br.select_form(nr=0)
print br.form
br["group_id"] = ["default"]
br["description"] = ""
br.submit()
token = getToken(br.response().get_data().decode('utf-8'))
print token

うまくいきました。
973929:2013/10/28(月) 01:28:00.48
>>970 そのサイトのやり方でやってみても、同じエラーが出ます

>>971 tokenをどのタイミングで取得すれば良いのか…
   
974デフォルトの名無しさん:2013/10/28(月) 01:36:00.54
そこのコードだとSSL対応してないな
975929:2013/10/28(月) 01:37:57.86
>>972
私はまたこのエラーが出てしまいました
Traceback (most recent call last):
File "ファイル名.py", line 30, in <module>
br.submit()
File "build\bdist.win32\egg\mechanize\_mechanize.py", line 541, in submit
File "build\bdist.win32\egg\mechanize\_mechanize.py", line 203, in open
File "build\bdist.win32\egg\mechanize\_mechanize.py", line 230, in _mech_open
File "build\bdist.win32\egg\mechanize\_opener.py", line 193, in open
File "build\bdist.win32\egg\mechanize\_urllib2_fork.py", line 349, in _open
File "build\bdist.win32\egg\mechanize\_urllib2_fork.py", line 332, in _call_ch
ain
File "build\bdist.win32\egg\mechanize\_urllib2_fork.py", line 1201, in unknown
976929:2013/10/28(月) 01:42:38.29
すみません先ほどのエラー内容、最後の行抜かしてしまいました
Traceback (most recent call last):
File "nico_login03.py", line 30, in <module>
br.submit()
File "build\bdist.win32\egg\mechanize\_mechanize.py", line 541, in submit
File "build\bdist.win32\egg\mechanize\_mechanize.py", line 203, in open
File "build\bdist.win32\egg\mechanize\_mechanize.py", line 230, in _mech_open
File "build\bdist.win32\egg\mechanize\_opener.py", line 193, in open
File "build\bdist.win32\egg\mechanize\_urllib2_fork.py", line 349, in _open
File "build\bdist.win32\egg\mechanize\_urllib2_fork.py", line 332, in _call_ch
ain
File "build\bdist.win32\egg\mechanize\_urllib2_fork.py", line 1201, in unknown
_open
urllib2.URLError: <urlopen error unknown url type: javascript>
977デフォルトの名無しさん:2013/10/28(月) 02:03:52.31
br.submit() したら意味ないだろ

token = getToken(br.response().get_data().decode('utf-8'))
br.open('http://www.nicovideo.jp/api/deflist/add' + '?' + urllib.urlencode({'token': token, 'group_id': 'default', 'description': '', 'item_type': 0, 'item_id': br['item_id']})))
print br.response().get_data().decode('utf-8')
978デフォルトの名無しさん:2013/10/28(月) 02:22:44.57
これでどうかな?
ttp://codepad.org/g4zNJmVc
979デフォルトの名無しさん:2013/10/28(月) 02:41:22.11
色々可笑しかったのでなおした
ttp://codepad.org/GPowVDvR
980デフォルトの名無しさん:2013/10/28(月) 02:53:31.80
切りが良いので埋め
981929:2013/10/28(月) 03:04:54.09
>>978 成功しました!いただいたコードとても勉強になります
ありがとうございます。

今回は「とりあえずマイリスト」への登録でしたが、もし個別マイリストを新規作成して登録する場合は
deflistのところをmylistにすれば良いのでしょうか?
982デフォルトの名無しさん:2013/10/28(月) 06:20:17.39
>>981
>>965 に書いてあるやん
もう質問でないように codepad に貼ったのに・・・
983デフォルトの名無しさん:2013/10/28(月) 06:26:56.40
ほとんどpython関係ないからな
984929:2013/10/28(月) 06:55:04.06
>>982 ごめんなさい本当にわからなくて…
きっと、Pythonに日頃親しんでいる方々にはとても簡単なことなのだろうとは思うのですが
私には初めて知ることの連続です。
>>965のサイトは、分からないことを調べながら興味深く読みましたが
まだまだ理解の追いつかない部分もたくさんあります。

自分で試行錯誤を続けます
また気が向いたら教えていただければ幸いです
985デフォルトの名無しさん:2013/10/28(月) 07:08:54.18
馬鹿には無理
986デフォルトの名無しさん:2013/10/28(月) 07:13:47.35
>きっと、Pythonに日頃親しんでいる方々にはとても簡単なことなのだろうとは思うのですが

だからpython関係ないって

おまえがやってるのは荒らし
荒らしじゃないと言い張ったとしても
わかっててわからないフリした釣りにしか見えない
987デフォルトの名無しさん:2013/10/28(月) 07:18:48.97
荒らしの相手する馬鹿も立派な荒らしだけどな
988デフォルトの名無しさん:2013/10/28(月) 08:08:35.80
次スレテンプレ

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



このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

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

前スレ
くだすれPython(超初心者用) その18
http://toro.2ch.net/test/read.cgi/tech/1375742968/
関連スレ
Pythonのお勉強 Part48
http://toro.2ch.net/test/read.cgi/tech/1358750040/
【実験台】 Python 3.0 のお勉強 Part 1 【非互換】
http://toro.2ch.net/test/read.cgi/tech/1235050215/
◆関連リンク
Python の Home Page
ttp://www.python.org/
989デフォルトの名無しさん:2013/10/28(月) 08:23:28.47
PythonでJSONを扱う場合、
どのモジュールが標準的ですか?
色々ありすぎて良く判りません。
990デフォルトの名無しさん:2013/10/28(月) 09:02:07.84
標準のjson
18.2. json ― JSON エンコーダおよびデコーダ ― Python 2.7ja1 documentation
http://docs.python.jp/2/library/json.html
991デフォルトの名無しさん:2013/10/28(月) 09:10:36.17
>>989
JSON は python 2.6 から標準モジュールになってる
>>965 のサイトの情報は古いからあまりあてにしない方が良い
992デフォルトの名無しさん:2013/10/28(月) 11:15:04.88
>>988
立てられんかった
993デフォルトの名無しさん:2013/10/28(月) 12:02:06.80
長いコードはideoneとかcodepadに張ってってテンプレに入れて
994デフォルトの名無しさん:2013/10/28(月) 12:56:53.30
次すれ
くだすれPython(超初心者用) その19
http://toro.2ch.net/test/read.cgi/tech/1382932315/
995デフォルトの名無しさん:2013/10/28(月) 14:01:33.31
>984
996デフォルトの名無しさん:2013/10/28(月) 15:26:36.42
>>995
そこ誤爆しちゃダメだろww
997デフォルトの名無しさん:2013/10/28(月) 16:23:19.19
>>984
良かったな
998デフォルトの名無しさん:2013/10/28(月) 17:08:29.19
>984
ナイス!
999デフォルトの名無しさん:2013/10/28(月) 17:48:46.16
荒らしの相手する馬鹿も立派な荒らしだけどな
1000デフォルトの名無しさん:2013/10/28(月) 17:49:18.81
次すれ
くだすれPython(超初心者用) その19
http://toro.2ch.net/test/read.cgi/tech/1382932315/
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。