【Python】(os、shutil)创建文件夹、删除文件(夹)、文件重命名、文件移动、复制文件(夹)

文件和文件夹的操作,需注意:如果文件或者文件夹不在当前工作目录,需绝对路径(如r'G:/python/aa')。

获取工作当前目录:os.getcwd()。

可以修改当前工作目录:os.chdir(新目录)。

 修改的当前工作目录仅在当前模块可用。若使用Python自带IDLE,仅在当前解释器窗口可用,重新打开也将失效。

创建文件夹:os.mkdir(...)

参数:path,文件夹名。

若文件夹已经存在,则报错FileExistsError。因此先判断是否没有该文件夹,若没有再创建。

补充:os.path.exists(...):判断文件或文件夹是否存在。返回True/False。

          if 条件语句,若只有简单一句,可以写在一行。

import os

folder = r'G:/python/aa'
if not os.path.exists(folder): os.mkdir(folder)

 

删除空文件夹:os.rmdir(...)

参数:path,文件夹名。

注意:只能删除空文件夹。若要彻底删除有文件的文件夹,使用shutil.rmtree(...)。

若文件夹不存在,则报错FileNotFoundError。

若文件夹中有文件,则报错OSError。


先判断文件夹是否存在,且是否没有文件在里面,再删除。

补充:os.listdir(...):遍历文件夹下所有文件(不含子文件夹下的文件),返回列表。

           not os.listdir(...):空列表,返回True。若列表有元素,返回False。

           条件表达式里返回False的情况:False、0、空值None、空序列对象(空列表、空元祖、空集合、空字典、空字符串)、空range对象、空迭代对象。

import shutil

folder = r'G:/python/aa'
if os.path.exists(folder) and not os.listdir(folder): os.rmdir(folder)

 

 删除文件夹(含文件):shutil.rmtree(...)

若文件夹不存在,则报错FileNotFoundError。因此先判断文件夹是否存在,若存在则删除。

import shutil

folder = r'G:/python/aa'
if os.path.exists(folder): shutil.rmtree(folder)

删除文件:os.remove(...)

参数:path,文件名。

若文件不存在,则报错FileNotFoundError。因此先判断文件是否存在,若存在则删除。

import os

file = r'G:\python\aa\new.xlsx'
if os.path.exists(file): os.remove(file)

文件/文件夹重命名、移动:os.rename(...)

参数:原文件名,新文件名。

注意:若原文件名不存在,则报错FileNotFoundError。若新文件名已经存在,则报错FileExistsError。

(1)若路径相同,只是新文件名与原文件名不同,则文件重命名。

import os

os.chdir(r'G:\python\aa')
os.rename('aa.xlsx', 'new.xlsx')

(2)若路径与原路径不同,文件名相同,相当于文件移动。

import os

os.rename(r'G:\python\abc\aa.xlsx', r'G:\python\aa.xlsx')

 (3)若文件名和路径与原文件名原路径都不同,相当于移动文件同时修改文件名。

import os

os.rename(r'G:\python\abc\aa.xlsx', r'G:\python\new.xlsx')

复制文件夹:shutil.copytree(...)

参数:原文件夹,复制后的文件夹(同时可重命名)。

返回:字符串。【复制后的文件夹名】

注意:若原文件夹不存在,则报错FileNotFoundError。若复制后的文件夹名已经存在,则报错FileExistsError。

import shutil

shutil.copytree(r'G:/python/aa', r'G:/abc')         # 返回:'G:/abc'

 复制文件:shutil.copy(...)

参数:原文件,复制后的文件(同时可重命名)。

返回:字符串。【复制后的文件名】

若原文件不存在,则报错FileNotFoundError。但是如果复制后的文件名已经存在,不会报错,依然返回复制后的文件名。

import shutil

# 将new.xlsx文件复制(且重命名)
file = r'G:\python\aa\new.xlsx'
copyFile = r'G:\python\new_copy.xlsx'
shutil.copy(file, copyFile)            # 返回:'G:\\python\\new_copy.xlsx'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值