Maison  >  Article  >  développement back-end  >  Explication détaillée des opérations sur les fichiers et répertoires Python

Explication détaillée des opérations sur les fichiers et répertoires Python

高洛峰
高洛峰original
2017-03-09 09:33:151302parcourir

Les opérations d'annuaire Python reposent principalement sur les modules os et shutil.

Opérations d'annuaire Python

Nouveau répertoire
os.mkdir("./test/")
#在当前目录下新建名为“test”的目录,存在则报错
Nouveau répertoire multi-niveaux
os.makedirs("./test/test1/test2/")
#存在则报错
Supprimer le répertoire
os.rmdir("./test/") 
#移除非空目录,不为空情况下报错
Supprimer le répertoire à plusieurs niveaux
os.removedirs("./test/test1/test2") 
#移除最后一级(test2)非空目录,不为空情况下报错
Copier l'arborescence de manière récursive
shutil.copytree("./test/","./test1/") 
#目标目录(./test1/)必须保证不存在,存在情况下报错
Supprimer l'arborescence de manière récursive
shutil.rmtree("./test/") 
#删除test目录及所包含的文件和目录
Récupérez le répertoire où se trouve le fichier actuel et utilisez os.getcwd(),sys.path[0]

Opérations sur les fichiers Python

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

shutil.copy("./test/1.py","./test1/") 
#目标可以是新文件的路径,也可以是新文件的目录,后者的情况下,新文件的名字为原文件的名字,若存在则覆盖
Déplacer des fichiers
shutyil.move("./test/1.py","./test1/")
#目标目录不存在则报错,存在同名文件也报错,目标也可以是文件的路径,例如“./test1/2.py” 此时文件会先移动到test1文件夹下,然后对文件进行重命名为2.py
Supprimer le fichier
os.remove("./test/1.py") 
#移除目标文件,不存在则报错
Obtenir le chemin du fichier actuel

os.path.abspath("./test") : Obtenez le chemin absolu du fichier
os.path.realpath("./test/") : Obtenez le chemin réel du fichier

Traitement des chemins Python

Le traitement des chemins par Python existe principalement sous le os.path module

Épissage du chemin de fichier
os.path.join("./test/","test1") #./test/test1/
Jugez les fichiers ou les répertoires Qu'ils existent ou non Obtenez le nom du répertoire
os.path.exists() 
#参数为文件路径或目录路径
Fichiers et répertoires dans le chemin divisé
os.path.isfile("./test/1.py") 
#True 文件不存在的情况下为 False
Extensions de fichiers dans le chemin partagé
os.path.isdir("./test/") 
#True. 目录不存在的情况下为 False
Parcourir les dossiers
os.path.basename("./test/1.py") 
#1.py 路径不存在不会报错
os.path.dirname("./test/test1/")
# ./test/test1 参数后面的反斜杠很重要,区别是文件路径还是目录路径。
Lors de la réinitialisation du pointeur dans un fichier, en plus du positionnement absolu introduit dans le fichier de base de Python section, le positionnement relatif peut également être réalisé via le module os.
os.path.split("./test/test1/1.py") 
# ("./test/test1/","1.py")

os.path.split("./test/test1/") 
# ("./test/test1/","")
Pour plus d'informations, veuillez vous référer au
os.path.splitext("./test/1.py") 
# ("./test/1",".py")
Module :
https://docs.python.org/2/library/os.html
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)
Module :
https://docs.python.org/2/library/shutil.html
f.seek(位置,os.SEEK_SET<相对起始位置>|os.SEEK_END<相对结束位置>|os.SEEK_CUR<相对当前位置>)

os

shutil

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn