python之IO目录处理

IO目录处理

在使用io常用函数之前,必须要在py文件头部import os。os是(Operation system)的缩写,意思就是系统操作。

1. 创建删除目录

 1 #!/usr/bin/python3
 2 # -*- coding: utf-8 -*-
 3 # @Time     :2018/11/29 15:27
 4 # @Author   :Yosef
 5 # @Email    :wurz529@foxmail.com
 6 # @File:    :class32.py
 7 # @Software :PyCharm Community Edition
 8 import os
 9 '''
10 创建目录,而非创建文件
11 创建文件,参考open中的model,删除文件则用到os.remove
12 '''
13 # os.mkdir("../python_io/")   # make directory 创建一个目录
14 # os.rmdir("../python_io")   # remove directory 删除一个目录
15 
16 file = open("../python_io/testio.txt", "w", encoding="UTF-8")  # 创建文件不要加上不存在的目录,否则报错;目录存在则创建文件成功
17 file.close()
18 os.remove("../python_io/testio.txt")

我创建删除目录,文件都是成功的。筒子们自己试一下。

2. 寻找目录/文件路径

 1 #!/usr/bin/python3
 2 # -*- coding: utf-8 -*-
 3 # @Time     :2018/11/30 10:26
 4 # @Author   :Yosef
 5 # @Email    :wurz529@foxmail.com
 6 # @File:    :class33.py
 7 # @Software :PyCharm Community Edition
 8 import os
 9 path=os.getcwd()        #E:python_workspaceStudyPythonos
10 print(path)
11 
12 path=os.path.dirname(__file__)   #E:/python_workspace/StudyPython/os
13 print(path)
14 
15 path=os.path.realpath(__file__)    # E:python_workspaceStudyPythonosclass33.py
16 print(path)
17 
18 path=os.path.basename(__file__)     # class33.py
19 print(path)

结果对比:

3. 目录路径的其他操作

3.1 文件路径拼接

os.path.join(a,b)   a:py文件的同级目录,b新建的文件目录。新建只能一级一级的新建。拼接路径的时候,不能跨过不存在的路径,直接去新建一层的目录。

1 import os
2 
3 new_file = os.path.join("sub_001", "test")  # join(a,b) 
4 print(new_file)
5 os.mkdir(new_file)

结果:

3.2 os.path.isdir / os.path.isfile  判断是否是目录,是否是文件

 1 #!/usr/bin/python3
 2 # -*- coding: utf-8 -*-
 3 # @Time     :2018/11/30 14:13
 4 # @Author   :Yosef
 5 # @Email    :wurz529@foxmail.com
 6 # @File:    :class34.py
 7 # @Software :PyCharm Community Edition
 8 import os
 9 path = os.getcwd()
10 print(os.path.isdir(path))
11 
12 file = os.getcwd()+"/class34.py"
13 print(os.path.isfile(file))

3.3  os.path.split() 目录分割

这个函数方法可以把切割路径,最后一层目录独立成为一个元素,返回结果是含有两个元素的元组。

参数说明:

  1. PATH指一个文件的全路径作为参数:
  2. 如果给出的是一个目录和文件名,则输出路径和文件名
  3. 如果给出的是一个目录名,则输出路径和为空文件名

实际上,该函数的分割并不智能,它仅仅是以 "PATH" 中最后一个 '/' 作为分隔符,分隔后,将索引为0的视为目录(路径),将索引为1的视为文件名,如:

>>> import os
>>> os.path.split('C:/soft/python/test.py')
('C:/soft/python', 'test.py')
>>> os.path.split('C:/soft/python/test')
('C:/soft/python', 'test')
>>> os.path.split('C:/soft/python/')
('C:/soft/python', '')

 3.4 os.listdir() 列出目录下所有文件名

这个函数的作用是列出目录下所有的文件,返回结果是列表。

1 import os
2 path = os.getcwd()
3 # path = os.path.realpath(__file__)
4 # print(os.path.split(path))
5 print(os.listdir(path))

结果如下:

原文地址:https://www.cnblogs.com/wlyhy/p/10043643.html