2012-02-28 10 views
4

Pythonでコードを探しています。私はディレクトリを作成し、dirのすべてのファイルを含む "ls -lR"と似たリストを作成できます。サブディレクター。名前、サイズ、最終変更日、権限、ユーザーなどの表形式で表示されます。PythonでのLinux上のファイルとディレクトリ

また、ディレクトリとサブディレクトリ内のすべてのファイルの合計サイズ。

私は現在、時間、サイズ、アクセス許可のために統計情報を使用しており、テーブルを作成したリストにも同じ情報を追加しています。しかし、ファイル名、パーマ、所有者、グループを見つける。もし私がもっと素敵なコードを手に入れることができたら?あなたがPythonの2.xのを使用している場合

+1

あなたは現在正確に何をしていますか? 'os.walk()' + 'os.stat()'? –

+0

os.listdir( "。")も役に立ちます。 – 01100110

+0

私は再帰的なメソッドを探していました。ファイルの指定を表形式で保存することができます。 – simplycurious

答えて

3

を使用できます:python 3.0の

commands.getoutput("ls –lR") 

はあなたが試すことができます:

subprocess.check_output("ls -lR") 

はそれが役に立てば幸い!

EDIT

Commands.getoutputとsubprocess.check_outputは、パラメータとして使用されるコマンドからの出力を返します。

例:

lslr = commands.getoutput("ls –lR") 
print lslr 

これは、あなたの現在のディレクトリ内のls -lRとまったく同じ出力が得られます。それから、必要なものをフィルタリングするのはあなた次第です!

現在のディレクトリを変更するには、os.chdir(/ desired/dir)を使用します。

+0

これは私が端末で直接使用していますが、1つは.pyファイルに入れます – simplycurious

+0

これをpyファイルに追加してください!私は私の答えを更新しました! – caiocpricci2

5

ファイルを再帰的にトラバースするには、os.walkを使用できます。これにより、必要なファイル名をすべて知ることができます。

ファイル名を取得したら、os.statを使用してユーザーIDとグループIDを取得できます。パーミッションに関しては、標準ライブラリを直接使用する方法はないと思いますが、os.accessを使用してアクセス権を1つずつテストして、どれが設定されているかを調べることができます。

+0

私が必要としていることは、すべてのファイルを読むことができるということです。次に、ファイルのプロパティを指定する異なる列を持つ表形式を格納できるはずです。 – simplycurious

+0

これは再帰を使用するのがわかりません – simplycurious

+1

表形式で保存するには、['csv'モジュール](http://docs.python.org/library/csv.html)を使用してください。標準ライブラリから。再帰に関して、 'os.walk'があなたのためにそれを行うので、それについて心配する必要はありません。 – jcollado

1

os.statをjcolladoが指すようにディレクトリ内を走査できます。検索パターンを使用して検索する場合は、そのディレクトリにglobを使用します。

0
import os 


def iterbrowse(path): 
    for home, dirs, files in os.walk(path): 
     for filename in files: 
      yield os.path.join(home, filename) 


for full_name in iterbrowse("/root"): 
    print full_name 
+0

これは疑問に答えるかもしれませんが、あなたのコードが何をしているのか、なぜ初期の問題を解決するのかを簡単に説明してください。 – user1438038

関連する問題