ホームページ >バックエンド開発 >Python チュートリアル >Pythonのファイル・ディレクトリ操作関数まとめ
Pythonでのファイルやフォルダの操作(ファイル操作関数)には、osモジュールとshutilモジュールが必要です。
現在の作業ディレクトリ、つまり現在の Python スクリプトが動作するディレクトリ パスを取得します: os.getcwd()
指定されたディレクトリ内のすべてのファイル名とディレクトリ名を返します: os.listdir()
ファイルの削除に使用される関数:os.remove()
複数のディレクトリを削除します: os.removedirs(r "c:python")
指定されたパスがファイルかどうかを確認します: os.path.isfile()
指定されたパスがディレクトリであるかどうかを確認します: os.path.isdir()
絶対パスかどうかの判定: os.path.isabs()
指定されたパスが実際に存在するかどうかを確認します: os.path.exists()
パスのディレクトリ名とファイル名を返します: os.path.split() 例 os.path.split('/home/swaroop/byte/code/poem.txt') 結果: ( '/home/swaroop/byte/code', 'poem.txt')
分割拡張子: os.path.splitext()
パス名を取得します: os.path.dirname()
ファイル名の取得: os.path.basename()
シェルコマンドを実行します: os.system()
環境変数の読み取りと設定:os.getenv() および os.putenv()
現在のプラットフォームで使用される行終端文字を指定します: os.linesep Windows は 'rn' を使用し、Linux は 'n' を使用し、Mac は 'r' を使用します
使用しているプラットフォームを指定します: os.name Windows の場合は 'nt'、Linux/Unix ユーザーの場合は 'posix'
名前の変更: os.rename(old, new)
複数レベルのディレクトリを作成します: os.makedirs(r "c:pythontest")
単一のディレクトリを作成します: os.mkdir("test")
ファイル属性の取得: os.stat(file)
ファイルのアクセス許可とタイムスタンプを変更します: os.chmod(file)
現在のプロセスを終了します: os.exit()
ファイルサイズの取得: os.path.getsize(filename)
ファイル操作:
os.mknod("test.txt") 空のファイルを作成します
fp = open("test.txt",w) ファイルを直接開き、ファイルが存在しない場合はファイルを作成します
オープンモードについて:
書き込み用に開きます、
a 追加モードで開きます (EOF から開始し、必要に応じて新しいファイルを作成します)
r+ 読み書きモードで開く
w+ は読み書きモードで開きます ( w を参照)
a+ 読み取り/書き込みモードで開きます (a を参照)
rb バイナリ読み取りモードでオープン
wb はバイナリ書き込みモードで開きます ( w を参照)
ab はバイナリ追加モードで開きます (a を参照)
rb+ はバイナリ読み取り/書き込みモードで開きます ( r+ を参照)
wb+ はバイナリ読み取り/書き込みモードで開きます (w+ を参照)
ab+ はバイナリ読み取り/書き込みモードで開きます ( a+ を参照)
fp.read([size]) #size はバイト単位の読み取りの長さです
fp.readline([size]) #size が定義されている場合は行の一部のみを返すことができます
fp.readlines([size]) # ファイルの各行をリストのメンバーとして扱い、このリストを返します。実際、これはループ内で readline() を呼び出すことによって内部的に実装されます。 size パラメータが指定されている場合、size は読み取られるコンテンツの全長を表します。これは、ファイルの一部のみが読み取られることを意味します。
fp.write(str) #str をファイルに書き込みます。write() は str
の後に改行文字を追加しません。
fp.writelines(seq) #seq のすべての内容をファイルに書き込みます (一度に複数行を書き込みます)。この関数も、各行の後に何も追加せずに、忠実に記述するだけです。
fp.close() #ファイルを閉じます。 Python は、使用されなくなったファイルを自動的に閉じますが、この機能は保証されていません。自分でファイルを閉じる習慣を身に付けることをお勧めします。 ファイルが閉じられた後にそのファイルに対して操作が実行されると、ValueError
が生成されます。
fp.flush() #バッファの内容をハードディスクに書き込みます
fp.fileno() #long 整数「ファイルラベル」を返します
fp.isatty() #ファイルが端末デバイスファイルかどうか (UNIX システムの場合)
fp.tell() #ファイル先頭を原点としたファイル操作マークの現在位置を返す
fp.next() #次の行に戻り、ファイル操作マークを次の行に移動します。ファイルが for...in file などのステートメントで使用される場合、トラバーサルを実装するために next() 関数が呼び出されます。
fp.seek(offset[,whence]) #ファイル操作マークをオフセット位置に移動します。このオフセットは通常、ファイルの先頭を基準にして計算され、通常は正の数になります。ただし、whence パラメーターが指定されている場合、これは必ずしも当てはまりません。whence を 0 にすると最初から計算を開始し、1 にすると現在位置を原点として使用できます。 2はファイルの末尾を起点として計算することを示します。ファイルを a または a+ モードで開いた場合、書き込み操作が実行されるたびに、ファイル操作マークは自動的にファイルの末尾に戻ることに注意してください。
fp.truncate([size]) #指定されたサイズにファイルをカットします。デフォルトでは、現在のファイル操作マークの位置までカットされます。サイズがファイル サイズより大きい場合、システムによっては、ファイルが変更されないか、対応するサイズまでファイルが 0 でパディングされるか、ランダムなコンテンツが追加されることがあります。
ディレクトリ操作:
os.mkdir("file") ディレクトリの作成
ファイルのコピー:
shutil.copyfile("oldfile","newfile") oldfile と newfile はどちらもファイルのみにすることができます
shutil.copy("oldfile","newfile") oldfile はフォルダーのみ、newfile はファイルまたはターゲット ディレクトリにすることができます
フォルダーのコピー:
shutil.copytree("olddir","newdir") olddir と newdir は両方ともディレクトリのみにすることができ、newdir は存在してはなりません
ファイル (ディレクトリ) の名前を変更します
os.rename("oldname","newname") このコマンドはファイルまたはディレクトリに使用します
ファイル (ディレクトリ) を移動する
shutil.move("oldpos","newpos")
ファイルを削除
os.remove("ファイル")
ディレクトリを削除
os.rmdir("dir")削除できるのは空のディレクトリのみです
shutil.rmtree("dir") 空のディレクトリとコンテンツのあるディレクトリは削除できます
ディレクトリを変換
os.chdir("path") パスの変更
関連する例
1 フォルダー内のすべての写真の名前に「_fc」を追加します
Python コード:
img_dir = 'D:\xx\xx\images'
img_dir = img_dir.replace('\','/')
start = time.time()
i = 0
変更名(img_dir)
c = time.time() - start
print('プログラム実行時間:%0.2f'%(c))
print('合計 %s 枚の写真が処理されました'%(i))