subprocessのcheck_callでディレクトリサイズを出力結果として保持したい
初めて質問させて頂きます。宜しくお願い致します。
subprocessモジュールを使用し、指定したディレクトリの
データサイズを取得するshellを実行し、結果を判定する処理を作成しております。
取得するディレクトリ( /var/hoge とします。)のデータサイズの取得は
Linuxのduコマンドを用いて取得しようと考えております。
その際に、subprocess.check_output()を用いて
引数でコマンドを実行し、出力結果を取得して判定したいのですが
①duコマンドの出力結果をうまく整形したい
(試行錯誤し、一応できましたが、このやり方しかないのでしょうか)
②バイト文字列のキャストは int(ret) のような書き方しかないでしょうか。
が知りたいです。
実行環境
Linux OS: Laspbian kernel 4.1
Python: 2.7.9
※ /var/hoge のサイズは 4096byteとした場合
下記でコマンドを実行した際は
4096 /var/hoge
となります。
4096だけを取り出し
指定したサイズと比較したいとした場合。
作成したコード
import subprocess
def testcall():
reta = []
cmd = "du -b /var/hoge"
ret = subprocess.check_output(cmd, shell=True)
reta = ret.split()
size = 1024
if int(reta[0]) >= int(size) :
print('DirSize:[%d] ' % int(reta[0]) )
return
思っていること
・リストretaを介さなければいけないのか。
・リストretaは毎回キャストしなければいけない?
言葉足らずであったばあい、申し訳御座いません。
宜しくお願い致します。