ホームページ  >  記事  >  バックエンド開発  >  Pythonのファイルとディレクトリの操作を詳しく解説

Pythonのファイルとディレクトリの操作を詳しく解説

高洛峰
高洛峰オリジナル
2017-03-09 09:33:151257ブラウズ

Python ディレクトリ操作は主に os モジュールと shutil モジュールに依存します。 osshutil 模块.

Python目录操作

新建目录
os.mkdir("./test/")
#在当前目录下新建名为“test”的目录,存在则报错
新建多级目录
os.makedirs("./test/test1/test2/")
#存在则报错
删除目录
os.rmdir("./test/") 
#移除非空目录,不为空情况下报错
删除多级目录
os.removedirs("./test/test1/test2") 
#移除最后一级(test2)非空目录,不为空情况下报错
递归拷贝树
shutil.copytree("./test/","./test1/") 
#目标目录(./test1/)必须保证不存在,存在情况下报错
递归删除树
shutil.rmtree("./test/") 
#删除test目录及所包含的文件和目录
获取当前文件所在目录使用 os.getcwd(),sys.path[0]

Python文件操作

拷贝文件
shutil.copyfile("./test/1.py","./test1/1.py") 
#目标(./test1/1.py)必须是新文件的路径,否则报错

shutil.copy("./test/1.py","./test1/") 
#目标可以是新文件的路径,也可以是新文件的目录,后者的情况下,新文件的名字为原文件的名字,若存在则覆盖
移动文件
shutyil.move("./test/1.py","./test1/")
#目标目录不存在则报错,存在同名文件也报错,目标也可以是文件的路径,例如“./test1/2.py” 此时文件会先移动到test1文件夹下,然后对文件进行重命名为2.py
删除文件
os.remove("./test/1.py") 
#移除目标文件,不存在则报错
获取当前文件所在路径

os.path.abspath("./test"):获取文件的绝对路径
os.path.realpath("./test/"):获取文件的真实路径

Python路径处理

python对路径的处理,主要存在于os.path模块下

文件路径拼接
os.path.join("./test/","test1") #./test/test1/
判断文件或目录是否存在
os.path.exists() 
#参数为文件路径或目录路径
判断是否为文件
os.path.isfile("./test/1.py") 
#True 文件不存在的情况下为 False
判断是否为目录
os.path.isdir("./test/") 
#True. 目录不存在的情况下为 False
获取文件的名称
os.path.basename("./test/1.py") 
#1.py 路径不存在不会报错
获取目录的名称
os.path.dirname("./test/test1/")
# ./test/test1 参数后面的反斜杠很重要,区别是文件路径还是目录路径。
分割路径中的文件和目录
os.path.split("./test/test1/1.py") 
# ("./test/test1/","1.py")

os.path.split("./test/test1/") 
# ("./test/test1/","")
分割路径中的文件扩展名
os.path.splitext("./test/1.py") 
# ("./test/1",".py")
遍历文件夹
1)os.path.walk(path,func,args) 参数都必填
参数1为遍历的目录,文件路径不存在不报错
参数2为回调函数,定义为f(args,dirname,files)<dirname:文件当前遍历的目录,files:为当前目录下文件和目录信息的列表>
参数3与参数2中函数的参数1相对应
2)os.walk(path, topdown,onerror) 参数可选填
参数1为遍历的目录,文件路径不存在不报错
参数2为True或者不填时,遍历规则为先遍历目录在遍历文件,为False时与之相反
参数3为对错误处理的函数,它调用时有一个参数, 一个OSError实例。报告这错误后,继续walk,或者抛出exception终止walk。
调用方式:
for dirname(当前遍历的目录),dirs(目录下的目录列表),files(目录下的文件列表) in os.walk(path)
在进行文件内指针重置的时候,除了Python基础篇文件部分介绍的绝对定位外,通过os模块还可以实现相对定位。
f.seek(位置,os.SEEK_SET<相对起始位置>|os.SEEK_END<相对结束位置>|os.SEEK_CUR<相对当前位置>)

更多内容请参考

os 模块: https://docs.python.org/2/library/os.html

shutil

Python ディレクトリ操作

新しいディレクトリ
rrreee
新しいマルチレベル ディレクトリの作成
rrreee
ディレクトリの削除
rrreee
マルチレベル ディレクトリの削除
rrreee
ツリーを再帰的にコピー
rrreee
ツリーを再帰的に削除します。rrreee
os.getcwd()sys.path[0]を使用して、現在のファイルが配置されているディレクトリを取得します>

Python ファイル操作

ファイルのコピー
rrreee
ファイルの移動
rrreee
ファイルの削除
rrreee
ファイルを取得現在のファイルのパス
os .path.abspath("./test"): ファイルの絶対パスを取得しますos.path.realpath("./ test/"): ファイルの実際のパスを取得しますPython パス処理

Python のパス処理は主に os.path モジュールの下に存在します

ファイルパスの結合
rrreee
ファイルかディレクトリの有無を判定
rrreee
ファイルかどうかを判定
rrreee
ディレクトリかどうかを判定
rrreee
ファイルの名前を取得します
rrreee
ディレクトリの名前を取得します
rrreee
パス内のファイルとディレクトリを分割します
rrreee
ファイル拡張子分割パス内
rrreee
フォルダのトラバース
rrreeerrreeerrreee
In ファイル内のポインタをリセットするときは、Python の基本ファイル セクションで紹介した絶対的な位置指定に加えて、相対的な位置指定も行うことができます。 os モジュールを通じて実現されます。
rrreee

詳細については、

os モジュールを参照してください: https://docs.python.org/2/library/os.html


shutil モジュール:

https://docs.python.org/2/library/shutil .html

🎜🎜🎜🎜🎜🎜🎜🎜🎜

以上がPythonのファイルとディレクトリの操作を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。