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


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

Pythonについて(アンチ専用)



1 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 10:24:06 .net]
Pythonが嫌いな人のためのスレッドです。

■関連スレ
Rubyについて(アンチ専用) Part002
pc11.2ch.net/test/read.cgi/tech/1200210768/

196 名前:デフォルトの名無しさん [2008/06/07(土) 03:08:10 .net]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, os, stat
import time

def main(root):
  dirsize = {}
  for dirpath, dirnames, filenames in os.walk(root, topdown=False):
    dirsize[dirpath] = 0
    for file in filenames:
      tgt = os.path.join(dirpath, file)
      siz = os.stat(tgt)[stat.ST_SIZE]
      dirsize[dirpath] += siz
    for dir in dirnames:
      tgt = os.path.join(dirpath, dir)
      siz = dirsize[tgt]
      dirsize[dirpath] += siz
      print '"dir","%s",%d' % (tgt, siz)

  print '"total","%s",%d' % (root, dirsize[root])

if __name__ == '__main__':
  if len(sys.argv) >= 2:
    main(sys.argv[1])

これでちゃんと動いていたような気がしたのですが
検索パス中に ▽●▲表 みたいな \5C で終わる
ディレクトリが含まれていると中断されてしまいます。
たぶん日本語の問題だろうと思って

197 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 03:10:24 .net]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, os, stat
import time

def main(root):
  dirsize = {}
  for dirpath, dirnames, filenames in os.walk(rootroot.decode('cp932'), topdown=False):
    dirsize[dirpath] = 0
    for file in filenames:
      tgt = os.path.join(dirpath, file)
      siz = os.stat(tgt)[stat.ST_SIZE]
      dirsize[dirpath] += siz
    for dir in dirnames:
      tgt = os.path.join(dirpath, dir)
      siz = dirsize[tgt]
      dirsize[dirpath] += siz
      print '"dir","%s",%d' % (tgt, siz)

  print '"total","%s",%d' % (root, dirsize[root])

if __name__ == '__main__':
  if len(sys.argv) >= 2:
    main(sys.argv[1])

のように直したら中断はされなくなったのですが、
hoge.py . > fuga.csv
で保存しようとするとエラーになります。
(上のバージョンはリダイレクトは出来ていました。)
Python の日本語の扱いが良く分かりません。
Python 嫌いになりそうです。><

198 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 03:16:16 .net]
後から貼った方が何か変なので直しておきます。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, os, stat
import time

def main(root):
dirsize = {}
for dirpath, dirnames, filenames in os.walk(root.decode('cp932'), topdown=False):
dirsize[dirpath] = 0
for file in filenames:
tgt = os.path.join(dirpath, file)
siz = os.stat(tgt)[stat.ST_SIZE]
dirsize[dirpath] += siz
for dir in dirnames:
tgt = os.path.join(dirpath, dir)
siz = dirsize[tgt]
dirsize[dirpath] += siz
print u'"dir","%s",%d' % (tgt, siz)

print u'"total","%s",%d' % (root, dirsize[root])

if __name__ == '__main__':
if len(sys.argv) >= 2:
main(sys.argv[1])

199 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 03:22:05 .net]
>>197
× rootroot.decode('cp932')
○ root.decode('cp932')

200 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 03:24:12 .net]
>>198
エラーにならん。
traceback張れ。

201 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 03:50:59 .net]
検索パス中に日本語が入っていて
hoge.py c:/ > fuga.csv
で保存しようとするとエラーになります。







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

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

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