makedirs

python判断文件夹是否存在,若不存在则创建文件夹

import os.path
path = r'C:\Users\614\Desktop\ddx2\ddx3'
if not os.path.exists(path):
os.makedirs(path)

注意

os.makedirs( )将创建所有必要的中间文件夹

获取当前py文件路径

  1. 获取当前py文件所在的夹绝对目录

import os
path = os.getcwd()
print(path)

D:\File_Python

import os
filePath = os.path.abspath(__file__)
folder = os.path.dirname(filePath)
print(folder)

文件夹拼接,拼接文件路径

import os
path = os.getcwd()
pathNew1 = os.path.join(path,'ddx666','ddx777')
pathNew2 = os.path.join(path,'ddx','ddx2','out.dat')
print(pathNew1,'\n',pathNew2)

D:\File_Python\ddx666\ddx777

D:\File_Python\ddx\ddx2\out.dat

从字符串中获取路径和文件名

fullpath = r'D:\File_Python\out.dat'
print( os.path.dirname(fullpath) )
print( os.path.basename(fullpath) )

D:\File_Python

out.dat

一些文件(夹)函数总结

os.path.getsize( path )

获取文件字节数

os.listdir( path )

获取文件名字符串列表

os.listdir('.')

获取当前文件夹下文件名字符串列表

os.getcwd( )

获取当前文件目录

os.chdirs( )

改变当前目录

os.path.exists( )

判断文件夹/文件是否存在

os.path.isdir( )

判断字符串是否是路径

os.path.isfile( )

判断字符串是否是文件

dir,file = os.path.split(fileName)

按照路径将文件名和路径分割开

os.path.dirname( filepath )

filepath是文件时返回文件夹路径,是文件夹时返回文件夹上一次路径;

os.path.basename(path)

获取文件名 ("E:\\efg.txt") --> 'efg.txt'

os.path.split(path)

分割文件夹与文件名("E:\\abc\\efg.txt") --> ('E:\\abc', 'efg.txt')

os.path.splitext( )

分割文件后缀与其他("E:\\abc\\efg.txt") -->('E:\\abc\\efg', '.txt')

os.path.abspath(path)

返回绝对路径

os.path.join('ddx2','out.dat')

路径拼接os.path.join(path,'ddx','ddx2','out.dat')

shutil复制

用于复制文件和文件夹

​📁​​ shutil.copy( source, destination)

source:文件的路径字符串

destination:可以是文件路径,也可以是文件夹路径

​📁​​ shutil.copytree( source, destination)

将文件夹source(包括子文件夹)的文件复制到destination处的文件夹

move移动

​📁​​ move( source, destination )

source:可以是文件路径,也可以是文件夹路径

destination:可以是文件路径,也可以是文件夹路径

删除文件/文件夹

  • os.unlink(filepath) 删除文件filepath
  • os.rmdir(path) 删除空文件夹path
  • shutil.rmtree(path) 永久删除path处的文件夹(内部文件及文件夹都被删除)
  • send2trash 删除到回收站,需要安装

遍历文件

  • os.walk(path) 遍历路径下的文件夹列表、文件列表

for root, dirs, files in os.walk(fileDir):

root = [x[0] for x in os.walk(path)]
dirs = [x[1] for x in os.walk(path)]
files = [x[2] for x in os.walk(path)]

判断文件后缀

file = "test_user_info.py"
bool = file.endswith(".py")
print(bool)

True

获取文件夹下所有文件的绝对路径

def get_subfolder_files(path):
"""获取指定路径下所有子文件夹的文件绝对路径"""
file_list = []
for foldername, subfolders, filenames in os.walk(path):
for filename in filenames:
file_list.append(os.path.join(foldername, filename))
return file_list

Python文件与文件夹操作_python