python文件操作:新建删除文件,获取拼接路径,罗列文件路径
1.新建文件
(1)新建目录/文件夹
os.mkdir('Kite') # 新建文件夹,mkdir在linux下是新建一个目录
(2)跨级新建目录
用/来代表路径的不同层级 [必须确保上面的层级是存在的]
os.mkdir('kite/v1') # 相对路径
os.mkdir("D://Test3/base_python/Kite/v2") # 绝对路径 #R或/转义
2.删除文件
一级一级的删除,不推荐一次性删除(报错:OSError:[WinErrorr 145]目录不是空的)
os.rmdir("kite/v1")
# os.rmdir("kite") 报错:OSError:[WinErrorr 145]目录不是空的
3.获取路径
(1)获取路径1:获取当前工作目录 具体到最后一级目录
path1 = os.getcwd()
print("获取当前路径1是:{0}".format(path1)) # 获取当前路径1是:D:\Test3\base_python
(2)获取路径2:获取当前文件的绝对路径 具体到模块名
path2 = os.path.realpath(__file__)
print("获取当前路径2是:{0}".format(path2)) # 获取当前路径2是:D:\Test3\base_python\class_getcwd.py
4.拼接路径
(1)拼接路径1:+
new_path_1 = os.getcwd()+'\kite\kite10_14_1'
print('拼接后的路径1为:{0}'.format(new_path_1))
os.mkdir(new_path_1)
(2)拼接路径2:join
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
new_path_2 = os.path.join(os.getcwd(),'kite\kite10_14_2')
print('拼接后的路径2为:{0}'.format(new_path_2))
# os.mkdir(new_path_2)
new_path_3 = os.path.join(os.getcwd(),'kite','kite')
print('拼接后的路径3为:{0}'.format(new_path_3)) # D:\Test3\base_python\kite\kite
# os.mkdir(new_path_3)
5.判断文件
(1)判断是文件还是目录
print(os.path.isfile(__file__)) # 返回值 布尔值 True(是否是文件)
print(os.path.isfile(os.getcwd())) # 布尔值 False(是否是文件)
print(os.path.isdir(os.getcwd())) # True (是否是目录)
(2)判断文件是否存在
print(os.path.exists(" D:/Test3/base_python/class_getcwd.py")) # False
6.罗列文件路径
print(os.listdir(os.getcwd()))
work:罗列指定路径下的所有文件
import os
path_list = []
def get_all(path):
#path =r'D:\Test3'
paths = os.listdir(path) # 列出指定路径下的所有目录和文件
for i in paths:
com_path = os.path.join(path,i)
# print(com_path)
if os.path.isdir(com_path):
get_all(com_path) # 如果该路径是目录,则调用自身方法
elif os.path.isfile(com_path):
path_list.append(com_path) # 如果该路径是文件,则追加到path_list中
print(com_path) 打印所有文件的绝对路径
#print(com_path) # 打印所有文件和目录的绝对路径
print("D:\Test3包括如下文件:")
# 调用函数
get_all(path=r'D:\Test3')