常用函数
import os
# 获取当前工作目录
cwd = os.getcwd()
# 切换工作目录
os.chdir('D:/')
# 获取指定目录下所有文件、目录
files = os.listdir('D:/')
# 创建目录,若目录存在则报错
os.mkdir('E:/os_dir_mk')
# 删除空目录,若目录不存在、不为空则报错
os.rmdir('E:/os_dir_rm')
# 删除文件
os.remove(r'E:\os_dir_rm\os_dir_rm.txt')
实用例子
import os
dir_mk = 'E:/os_dir_mk'
# 如果目录不存在创建目录
if not os.path.exists(dir_mk):
os.mkdir(dir_mk)
# 否则打印提示
else:
print('Directory already exists!')
import os
dir_rm = 'E:/os_dir_rm'
# 检查目录是否存在,否则提示目录不存在
if os.path.exists(dir_rm):
# 目录为空删除目录,否则提示目录非空
if not os.listdir(dir_rm):
os.rmdir(dir_rm)
else:
print('Directory is not empty.')
else:
print('Directory does not exist.')
import os
# 1.获取目录下目录、文件
# 2.若文件,直接删除
# 3.若空目录,删除
# 4.非空,递归删除
# 5.删除本目录
def remove_directory(path_dir):
if os.path.exists(path_dir):
files = os.listdir(path_dir)
for file in files:
path = os.path.join(path_dir, file)
if os.path.isfile(path):
os.remove(path)
elif not os.listdir(path):
os.rmdir(path)
else:
remove_directory(path)
os.rmdir(path_dir)
else:
print('Directory does not exists.')
if __name__ == '__main__':
dir_rm = r'E:\os_dir_rm'
remove_directory(dir_rm)
import os
# 源路径为文件、目标路径为文件:另存为
# 源路径为目录、目标路径为文件:报错
# 源路径为文件、目标路径为目录:复制到目标目录下
# 源路径为目录、目标路径为目录:复制到目标目录下
# 1.目标目录下创建源目录同名目录
# 2.获取源目录下文件、目录
# 3.若文件,直接复制到同名目录
# 4.若目录,同名目录下新建同名目录,重复1、2
def copy_file(path_src, path_tar):
# 源路径不存在,报错
if not os.path.exists(path_src):
print('Source path does not exist.')
else:
isdir_src = os.path.isdir(path_src)
isdir_tar = not os.path.isfile(path_tar)
# 文件复制到文件(另存)
if not isdir_src and not isdir_tar:
with open(path_src, 'rb') as f_src:
stream_src = f_src.read()
with open(path_tar, 'wb') as f_tar:
f_tar.write(stream_src)
# 目录复制到文件将报错
elif isdir_src and not isdir_tar:
print('Sorry, cannot copy a directory to a file.')
# 目录复制到目录下
elif isdir_src and isdir_tar:
# 目标目录下新建目录的目录路径,用目标目录和源目录文件夹名表示
path_dir_tar = os.path.join(path_tar, path_src.split('\\')[-1])
# 目标目录不存在,新建目标目录并在目标目录下新建同名目录
if not os.path.exists(path_tar):
os.mkdir(path_tar)
os.mkdir(path_dir_tar)
# 目标目录内已有同名目录,提示信息并返回
elif os.path.exists(path_dir_tar):
print('Target directory has already exist. Cannot create directory.')
return
# 获取原目录内所有文件、目录
files = os.listdir(path_src)
for file in files:
# 结合形成目标路径
path_file_src = os.path.join(path_src, file)
# 目标路径为文件则复制到新建目录内
if os.path.isfile(path_file_src):
with open(path_file_src, 'rb') as f_src:
stream_src = f_src.read()
path_file_tar = os.path.join(path_dir_tar, file)
with open(path_file_tar, 'wb') as f_tar:
f_tar.write(stream_src)
# 目标路径为目录则将目录复制到新建目录内
else:
copy_file(path_file_src, path_dir_tar)
# 文件复制到目录下
elif not isdir_src and isdir_tar:
with open(path_src, 'rb') as f_src:
stream_src = f_src.read()
filename = os.path.split(path_src)[1]
path_file_tar = os.path.join(path_tar, filename)
with open(path_file_tar, 'wb') as f_tar:
f_tar.write(stream_src)
if __name__ == '__main__':
path_src = r'E:\src'
path_tar = r'D:\tar'
copy_file(path_src, path_tar)
本文暂时没有评论,来添加一个吧(●'◡'●)