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とした場合  
下記でコマンドを実行した際は

[code]

    4096    /var/hoge
    
[/code]

となります。

4096だけを取り出し  
指定したサイズと比較したいとした場合。

作成したコード

[code]

    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
    
[/code]

思っていること  
・リストretaを介さなければいけないのか。  
・リストretaは毎回キャストしなければいけない？

言葉足らずであったばあい、申し訳御座いません。  
宜しくお願い致します。




以下のものでいかがですか?
基本的には御提示になったようにすると思います．あとsizeは1024を代入した時点で`int`なのでcastする必要はないです．文字列から`int`にcastするのは`int()`でいいです．

[code]

    import subprocess
    
    def testcall():
        cmd = "du -b /var/hoge"
        dsize = int(subprocess.check_output(cmd, shell=True).split()[0])
        size = 1024
        if dsize >= size :
            print('DirSize:[%d] ' % dsize )
        return
    
[/code]




以下のものでいかがですか?
基本的には御提示になったようにすると思います．あとsizeは1024を代入した時点で`int`なのでcastする必要はないです．文字列から`int`にcastするのは`int()`でいいです．

[code]

    import subprocess
    
    def testcall():
        cmd = "du -b /var/hoge"
        dsize = int(subprocess.check_output(cmd, shell=True).split()[0])
        size = 1024
        if dsize >= size :
            print('DirSize:[%d] ' % dsize )
        return
    
[/code]

