Home > Backend Development > Python Tutorial > Detailed explanation of Python file and directory operations

Detailed explanation of Python file and directory operations

高洛峰
Release: 2017-03-09 09:33:15
Original
1330 people have browsed it

Python directory operations mainly rely on the os and shutil modules.

Python directory operations

New directory
os.mkdir("./test/")
#在当前目录下新建名为“test”的目录,存在则报错
Copy after login
New multi-level directory
os.makedirs("./test/test1/test2/")
#存在则报错
Copy after login
Delete directory
os.rmdir("./test/") 
#移除非空目录,不为空情况下报错
Copy after login
Delete multi-level directory
os.removedirs("./test/test1/test2") 
#移除最后一级(test2)非空目录,不为空情况下报错
Copy after login
Recursive copy tree
shutil.copytree("./test/","./test1/") 
#目标目录(./test1/)必须保证不存在,存在情况下报错
Copy after login
Recursively delete tree
shutil.rmtree("./test/") 
#删除test目录及所包含的文件和目录
Copy after login
Get the directory where the current file is located using os.getcwd(),sys.path[0]

Python file operation

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

shutil.copy("./test/1.py","./test1/") 
#目标可以是新文件的路径,也可以是新文件的目录,后者的情况下,新文件的名字为原文件的名字,若存在则覆盖
Copy after login
Move files
shutyil.move("./test/1.py","./test1/")
#目标目录不存在则报错,存在同名文件也报错,目标也可以是文件的路径,例如“./test1/2.py” 此时文件会先移动到test1文件夹下,然后对文件进行重命名为2.py
Copy after login
Delete files
os.remove("./test/1.py") 
#移除目标文件,不存在则报错
Copy after login
Get the path of the current file

os.path.abspath("./test") : Get the absolute path of the file
os.path.realpath("./test/"): Get the real path of the file

Python path processing

Python's processing of paths mainly exists under the os.path module

File path splicing
os.path.join("./test/","test1") #./test/test1/
Copy after login
Determine whether the file or directory exists
os.path.exists() 
#参数为文件路径或目录路径
Copy after login
Judge whether it is a file
os.path.isfile("./test/1.py") 
#True 文件不存在的情况下为 False
Copy after login
Judge whether it is a directory
os.path.isdir("./test/") 
#True. 目录不存在的情况下为 False
Copy after login
Get the name of the file
os.path.basename("./test/1.py") 
#1.py 路径不存在不会报错
Copy after login
Get the name of the directory
os.path.dirname("./test/test1/")
# ./test/test1 参数后面的反斜杠很重要,区别是文件路径还是目录路径。
Copy after login
Split the files in the path and directory
os.path.split("./test/test1/1.py") 
# ("./test/test1/","1.py")

os.path.split("./test/test1/") 
# ("./test/test1/","")
Copy after login
The file extension in the split path
os.path.splitext("./test/1.py") 
# ("./test/1",".py")
Copy after login
Traverse the folder
1)os.path.walk(path,func,args) 参数都必填
参数1为遍历的目录,文件路径不存在不报错
参数2为回调函数,定义为f(args,dirname,files)<dirname:文件当前遍历的目录,files:为当前目录下文件和目录信息的列表>
参数3与参数2中函数的参数1相对应
Copy after login
2)os.walk(path, topdown,onerror) 参数可选填
参数1为遍历的目录,文件路径不存在不报错
参数2为True或者不填时,遍历规则为先遍历目录在遍历文件,为False时与之相反
参数3为对错误处理的函数,它调用时有一个参数, 一个OSError实例。报告这错误后,继续walk,或者抛出exception终止walk。
Copy after login
调用方式:
for dirname(当前遍历的目录),dirs(目录下的目录列表),files(目录下的文件列表) in os.walk(path)
Copy after login
When resetting the pointer in the file, in addition to the file part of the Python basics In addition to absolute positioning, relative positioning can also be achieved through the os module.
f.seek(位置,os.SEEK_SET<相对起始位置>|os.SEEK_END<相对结束位置>|os.SEEK_CUR<相对当前位置>)
Copy after login

For more information, please refer to

os Module: https://docs.python.org/2/library/os.html

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




The above is the detailed content of Detailed explanation of Python file and directory operations. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template