python对文件夹进行操作

python操作文件与文件夹

1.使用os操作文件与文件夹

os模块的常用方法

方法说明
os.getcwd()获取当前工作目录
os.chdir()改变当前工作目录
os.listdir()列出当前目录下的文件
os.mkdir()创建文件夹
os.makedirs()递归创建文件夹目录
os.rmdir()删除空目录
os.remakedirs()递归删除文件夹目录
os.rename()文件或文件夹重新命名
os.remove()删除文件

1.getcwd()

import os
path=os.getcwd()#获取当前运行文件所在路径
print(path)

#结果:
========================== RESTART: D:/learnpy/os学习.py =========================
D:\learnpy
>>> 

2.chdir()

这个一般建议在终端窗口使用,它是改变当前路径,在改变的路径下进行操作,如图,原本路径,与改后路径,然后创建文件,它保存在D盘里了
在这里插入图片描述

3.listdir()

import os
path="D:\learnpy\数据表"
path_list=os.listdir(path)
print(path_list)


在这里插入图片描述

4.mkdir()

import os
#没创建之前查看"D:\learnpy"该目录下的文件
before_path=os.listdir()
os.mkdir("D:\learnpy\os学习")#在"D:\learnpy"路径下创建os学习文件夹
#查看是否创建成功
after_path=os.listdir()
print("before文件的总数量:",len(before_path))
print("*"*10)
print("after文件的总数量:",len(after_path))
#
======================================================================= RESTART: D:/learnpy/os学习.py =======================================================================
before文件的总数量: 86
**********
after文件的总数量: 87
>>> 

5.makedirs()

import os
before=os.listdir("D:/learnpy/os学习")
os.makedirs("D:/learnpy/os学习/a/b/c")#在"D:\learnpy\os学习\中创建a文件夹,接着a文件夹创建b,依次类推"
#查看是否创成功
path=os.listdir("D:/learnpy/os学习")
print("before:",before)
print("*"*10)
print("after文件的总数量:",path)

#======================================================================= RESTART: D:/learnpy/os学习.py =======================================================================
before: []
**********
after文件的总数量: ['a']
>>> 



6.rmdir()

import os
#before=os.listdir("D:/learnpy/os学习")
os.rmdir("D:/learnpy/os学习/a/b/c")#删除c文件夹
path=os.listdir("D:/learnpy/os学习/a/b")
#print("before:",before)
print("*"*10)
print("after文件的总数量:",path)
#======================================================================= RESTART: D:/learnpy/os学习.py =======================================================================
**********
after文件的总数量: []


7.removedirs()

import os
#before=os.listdir("D:/learnpy/os学习")
os.removedirs("D:/learnpy/os学习/a/b")#删除c文件夹
path=os.listdir("D:/learnpy/os学习/a/b")
#print("before:",before)
print("*"*10)
print("after文件的总数量:",path)
'''
报错:
 File "D:\Program Files (x86)\python\lib\os.py", line 243, in removedirs
    rmdir(name)
OSError: [WinError 145] 目录不是空的。: 'D:/learnpy/os学习/a/b'''
>>> 


注意,递归删除的文件,里面的目录是需要是空的,没有文件,下面我们删除文件,结果没有报错,把递归创建的文件夹都删除了

import os
before=os.listdir("D:/learnpy/os学习")
os.remove("D:/learnpy/os学习/a/b/1.txt")#删除b目录下的文件
os.removedirs("D:/learnpy/os学习/a/b")#删除c文件夹
path=os.listdir("D:/learnpy/os学习")
print("before:",before)
print("*"*10)
print("after文件的总数量:",path)
'''
======================================================================= RESTART: D:/learnpy/os学习.py =======================================================================
before: ['2ds.txt', 'a']
**********
after文件的总数量: ['2ds.txt']
>>> 
'''


8.rename()

发现一个很神奇的事情,就是在我电脑上执行以上操作,我os学习文件夹原来的文件改名后被移动到D:/learnpy这个位置了,然后os学习文件夹空了,这我也不知道为什么

import os
os.rename("D:/learnpy/os学习/加油.txt","加油你好.txt")
new_name=os.listdir("D:/learnpy/os学习")
print(new_name)
'''
======================================================================= RESTART: D:/learnpy/os学习.py =======================================================================
[]
>>> 

'''


9.remove()删除文件

如果我们输入删除的是文件目录,它会显示报错,不可以混淆rmdir()与remove()

import os
os.remove("D:/learnpy/os学习/加油.txt")
print("完成")



2.使用os.path操作文件与文件夹

方法说明
os.path.abspath()返回绝对路径
os.path.dirname()显示完整目中的目录部分
os.path.basename显示路径的最后文件
os.path.split()把文件与目录路径分开
os.path.join()起连接作用
os.path.isfile()判断该文件存在
os.path.isdir()判断该目录是否存在
os.path.getsize()获取文件大小

1.os.path.abspath()

>>> import os
>>> os.chdir("D:/learnpy/os学习")
>>> path='./加油你好.txt'#相对路径
>>> os.path.abspath(path)
'D:\\learnpy\\os学习\\加油你好.txt'#转化为绝对路径

2.dirname与basename

import os
path="D:/learnpy/os学习/a/b"
dir_name=os.path.dirname(path)
print("dirname:",dir_name)
base_name=os.path.basename(path)
print("basename:",base_name)

'''
返回结果:
==
dirname: D:/learnpy/os学习/a
basename: b
'''

3.os.path.split()

就是将文件路径与文件分开,返回的是二元组的形式

import os
path="D:/learnpy/os学习/加油你好.txt"
path_split=os.path.split(path)
print(path_split)
'''
('D:/learnpy/os学习', '加油你好.txt')
>>> 
'''

4.os.path.join()

将路径连接起来,join()里面的参数可以是多个

import os
path="D:/learnpy/os学习/"
path_join='ni.py'
r=os.path.join(path,path_join)
print(r)
'''
==
D:/learnpy/os学习/ni.py
>>> 
'''


5.os.path.isfile()与isdir()

import os
path1="D:/learnpy/os学习/jiayou.txt"
path2="D:/learnpy/os学习/加油你好.txt"
path="D:/learnpy/a"
r1_f=os.path.isfile(path1)
r2_f=os.path.isfile(path2)
r1_dir=os.path.isdir(path)
print("path1文件判断结果为{},path2文件判断结果为{},path路径是否存在结果为{}".format(r1_f,r2_f,r1_dir))

'''
==
path1文件判断结果为False,path2文件判断结果为True,path路径是否存在结果为False
>>> 
'''

5.os.path.getsize()

import os
path="D:/learnpy/os学习/加油你好.txt"
r=os.path.getsize(path)
print(r)



总结

这些操作,可以方便自己批量整理本机文件名,创建、修改,删除等操作,做完这篇笔记,在脑海里加深了记忆。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值