os 模块提供了非常丰富的方法用来处理文件和目录
1 # 获取当前路径
2 path = os.getcwd()
3
4 # 获取当前绝对路径
5 os.path.abspath(path)
6
7 # 创建一级目录
8 os.mkdir(path)
9
10 # 删除空目录
11 os.rmdir(path)
12
13 # 创建多级目录
14 os.makedirs(path)
15
16 # 删除多级空目录
17 os.removedirs(path)
18
19 # 修改路径为path
20 os.chdir(path)
/test/testing/test
# 获取当前路径下所有文件、文件夹
os.listdir(path)
# 创建文件方式一
f = os.open(path + "test.txt", flags=os.O_CREAT | os.O_RDWR )
# 写入文件
os.write(f, bytes("123",encoding="utf-8"))
# 读取文件
print(os.read(f,12))
# 关闭文件
os.close(f)
# 重命名文件
os.rename(path + "test.txt", path + "tests.txt")
# 删除文件
os.remove(path + "tests.txt")
# 递归返回path下的目录(包括path目录)、子目录、文件名的三元组
for root, dirname, filenames in os.walk(path):
logzeros.debug(root)
logzeros.debug(dirname)
logzeros.debug(filenames)
listdir 返回的是一个列表,若没有文件则返回空列表
os.write(fd, str) 用于写入bytes字符串到文件描述符 fd 中. 返回实际写入的字符串长度
os.read(fd,n) 用于从文件描述符 fd 中读取最多 n 个字节,返回包含bytes字符串
关于 open() 可看此博客:https://cloud.tencent.com/developer/article/1640682
关于 os.walk(path) 可看此博客:https://cloud.tencent.com/developer/article/1640680
path = os.path.realpath(__file__)
print(path)
运行结果
C:\Users\user\Desktop\py\moocInterface\learn\os_path_learn.py
path = os.path.abspath(".")
print(path)
path = os.path.abspath(os.path.realpath(__file__))
print(path)
运行结果
C:\Users\user\Desktop\py\moocInterface\learn
C:\Users\user\Desktop\py\moocInterface\learn\os_path_learn.py
第一行代码跟 os.getcwd() 很像
path = os.getcwd()
print(path)
运行结果
C:\Users\user\Desktop\py\moocInterface\learn
print(os.path.dirname(r'C:\Users\user\Desktop\py\moocInterface\learn\os_path_learn.py'))
print(os.path.dirname(r'C:\Users\user\Desktop\py\moocInterface\learn'))
# 表示获取当前文件所在目录的上一级目录,即项目所在目录C:\Users\user\Desktop\py\moocInterface
print(os.path.dirname(os.path.abspath('.')))
运行结果
C:\Users\user\Desktop\py\moocInterface\learn
C:\Users\user\Desktop\py\moocInterface
C:\Users\user\Desktop\py\moocInterface
# 目录
os.path.split(os.getcwd())
# 文件
os.path.split(os.path.realpath(__file__))
运行结果
('C:\\Users\\user\\Desktop\\py\\moocInterface', 'learn')
('C:\\Users\\user\\Desktop\\py\\moocInterface\\learn', 'os_path_learn.py')
# 拼接目录
new_path = os.path.join(os.getcwd(), "test")
print(new_path)
# 拼接文件
new_path = os.path.join(os.getcwd(), "test.txt")
print(new_path)
# 拼接多重目录
new_path = os.path.join(os.getcwd(), "test/test/test")
print(new_path)
# 拼接多个目录、文件
new_path = os.path.join(os.getcwd(), "test", "Test", "ok.txt")
print(new_path)
运行结果
C:\Users\user\Desktop\py\moocInterface\learn\test
C:\Users\user\Desktop\py\moocInterface\learn\test.txt
C:\Users\user\Desktop\py\moocInterface\learn\test/test/test
C:\Users\user\Desktop\py\moocInterface\learn\test\Test\ok.txt