2013年6月9日日曜日

[Python]ディレクトリ

ディレクトリ作成
ディレクトリ作成には os モジュールの mkdir() を使う
# -*- coding: utf-8 -*-
# ディレクトリ作成
import os
import os.path

target = "test"
if os.path.exists("./" + target) == True:
    print "%s has already existed." % (target)
else:
    os.mkdir(target)

実行結果
$ ls
mkdir.py rmdir.py
$ python mkdir.py
$ python mkdir.py
test has already existed.
$ ls
mkdir.py rmdir.py test


ディレクトリ削除
ディレクトリ削除には os モジュールの rmdir() を使う
# -*- coding: utf-8 -*-
# ディレクトリ削除
import os

target = "test"
if os.path.exists("./" + target) == True:
    os.rmdir("test")
else:
    print "%s does not exist." % (target)

実行結果
$ ls
mkdir.py rmdir.py test
$ python rmdir.py
$ python rmdir.py
test does not exist.
$ ls
mkdir.py rmdir.py

ディレクトリ内のファイル走査
  • os.path.walk
    Current directory の中身を走査して jpg ファイルを選び出す
    # -*- coding: utf-8 -*-
    import os
    import re
    
    def callback(arg, dirname, filenames):
        print "dirname: ", dirname
        for file in filenames:
            print file
            if re.search("jpg$", file):
            print "---> This file is JPEG"
    
    arglist = []
    os.path.walk('./', callback, arglist)
    

    実行結果
    > python dir.py
    dirname: ./
    aaa.txt
    bbb.txt
    ccc.jpg
    ---> This file is JPEG
    dir.py
  • os.walk
    Python 2.3 以降では os.path.walk ではなく os.walk を使う
    # -*- coding: utf-8 -*-
    import os
    
    top = '.'
    print "--- os.walk(top) ---"
    for root, dirs, files in os.walk(top):
        for name in files:
            print "File: %s" % (name)
        for name in dirs:
            print "Dir: %s" % (name)
    
    # リストの並び順が変わる
    print "--- os.walk(top, topdown=False) ---"
    for root, dirs, files in os.walk(top, topdown=False):
        for name in files:
            print "File: %s" % (name)
        for name in dirs:
            print "Dir: %s" % (name)
    

    実行結果
    > python dir2.py
    --- Recursive os.walk(top) ---
    File: aaa.txt
    File: bbb.txt
    File: ccc.jpg
    File: dir.py
    File: dir2.py
    Dir: test
    File: aaa.txt
    --- Non-recursive os.walk(top, topdown=False) ---
    File: aaa.txt
    File: aaa.txt
    File: bbb.txt
    File: ccc.jpg
    File: dir.py
    File: dir2.py
    Dir: test
    
  • os.listdir
    # -*- coding: utf-8 -*-
    import os
    
    top = '.'
    
    # 指定した path に含まれる要素のリストを作成する
    ls = os.listdir(top)
    print ls
    for name in ls:
        print name
    
    出力結果
    > python list.py
    ['aaa.txt', 'bbb.txt', 'ccc.jpg', 'dir.py', 'dir2.py', 'list.py', 'test']
    aaa.txt
    bbb.txt
    ccc.jpg
    dir.py
    dir2.py
    list.py
    test

0 件のコメント:

コメントを投稿