文件和文件夹的增删查改
admin
2023-06-29 11:04:22
0
#文件、文件夹的移动、复制、删除、重命名

#导入shutil模块和os模块
import shutil,os

#复制单个文件
shutil.copy("C:\\a\\1.txt","C:\\b")
#复制并重命名新文件
shutil.copy("C:\\a\\2.txt","C:\\b\\121.txt")
#复制整个目录(备份)
shutil.copytree("C:\\a","C:\\b\\new_a")

#删除文件
os.unlink("C:\\b\\1.txt")
os.unlink("C:\\b\\121.txt")
#删除空文件夹
try:
    os.rmdir("C:\\b\\new_a")
except Exception as ex:
    print("错误信息:"+str(ex))#提示:错误信息,目录不是空的
#删除文件夹及内容
shutil.rmtree("C:\\b\\new_a")

#移动文件
shutil.move("C:\\a\\1.txt","C:\\b")
#移动文件夹
shutil.move("C:\\a\\c","C:\\b")

#重命名文件
shutil.move("C:\\a\\2.txt","C:\\a\\new2.txt")
#重命名文件夹
shutil.move("C:\\a\\d","C:\\a\\new_d")

OS模块的一部分操作

1、获取与切换当前活动目录

os.getcwd() —— 获取当前活动目录,当前路径

os.chdir(path) —— 活动目录切换到path

os.getcwd() # 获取当前活动目录
'C:\Software\Python35'
os.chdir('C://') # 活动目录切换到C:/
os.getcwd() # 获取当前活动目录
'C:\'
os.chdir('C:\Software\Python35') # 切换回活动目录

2、当前路径或路径下的文件

os.getcwd() —— 查看当前所在路径。

os.listdir(path) —— 列举目录下的所有文件与目录。返回list列表。

os.walk(path) —— 列举目录下的所有文件与目录(包含子文件夹)。返回可迭代对象。

import os
os.getcwd() # 获取当前目录路径
'C:\Software\Python35'
os.listdir('.') # 返回当前目录下目录与文件
['DLLs', 'Doc', 'include', 'Lib', 'libs', 'LICENSE.txt', ....]
os.listdir(r'C:\Users\Public\SogouInput\USBDT') # 返回路径下目录与文件
['OctopusDownloader.exe', 'SgRose.dll']
for root,dirs,files in os.walk('.'):
print(root) # 当前目录路径str
print(dirs) # 当前路径下的所有子目录list
print(files) # 当前路径下的所有非目录的文件

3、目录的增删改

os.mkdir(path) —— 创建目录(只能创建一层)

os.makedirs(path) —— 递归创建目录

os.rename(src ,dst) —— 重命名文件或目录,从 src 到 dst

os.renames(src ,dst) —— 递归地对目录进行更名,也可以对文件进行更名。

os.rmdir(path) —— 删除path指定的空目录,如果目录非空,则抛出一个OSError异常

os.removedirs(path) 递归删除目录

os.chdir('C://') # 活动目录切换到C:/盘下
os.getcwd() # 获取当前活动目录
'C:\'
os.mkdir('test') # 在当前活动目录创建test目录
os.path.exists('test') # 确认test目录创建成功
True
os.rename('test','test001') # test重命名为test001
'test' in os.listdir('.') # 确认文件或目录是否存在
False
'test001' in os.listdir('.')
True
os.rmdir('test001') # 删除test001目录
'test001' in os.listdir('.')
False

4、文件的增删改

os.remove(path) —— 删除指定文件

os.rename(src ,dst) —— 重命名文件或目录,从 src 到 dst

文件新增在打开写入模式时创建os.open("文件名", os.O_CREAT)或open("文件名",’w’)

fo=os.open("test.txt", os.O_CREAT) # 创建并打开文件
'test.txt' in os.listdir('.') # 判断文件是否存在
True
os.close(fo) # 关闭打开文件
os.rename('test.txt','test001.txt') # 重命名文件
'test.txt' in os.listdir('.')
False
'test001.txt' in os.listdir('.')
True
os.remove('test001.txt') # 删除文件
'test001.txt' in os.listdir('.')
False

5、相对路径转换为绝对路径

os.path.abspath(path) —— 返回path的绝对路径

os.path.isabs(path) —— 是否是绝对路径

os.path.abspath('.') # . 表示当前目录
'C:\Software\Python35'
os.path.abspath('..') # .. 表示上级目录
'C:\Software'
os.path.isabs('C:\Software\Python35') # 路径是否为绝对路径
True
os.path.isabs('..') # 路径是否为相对路径
False

6、获取路径中的文件名与文件目录部分

os.path.basename(path) —— 去掉目录路径获取文件名

os.path.dirname(path) —— 去掉文件名获取目录

path='C:\Software\Python35\python.exe'
os.path.basename(path)
'python.exe'
os.path.dirname(path)
'C:\Software\Python35'

7、判断路径是文件还是文件夹

os.path.isdir(path) —— 是否是目录

os.path.isfile(path) —— 是否是文件

当文件或者目录不存在是返回False

os.path.isfile('C:\Software\Python35\python.exe') # 是否为文件
True
os.path.isfile('C:\Software\Python35')
False
os.path.isfile('.\python.exe') # 可以使用相对路径
True
os.path.isdir('C:\Software\Python35')
True
os.path.isdir('python.exe')
False
os.path.isdir('.')
True

8、查看文件或目录是否存在

os.path.exists(path) —— 文件或目录是否存在,返回True 或 False

os.path.exists('lib')
True
os.path.exists('.\python125.exe')
False

9、查看文件时间

os.path.getmtime(path) —— 文件或文件夹的最后修改时间,从新纪元到访问时的秒数。

os.path.getatime(path) —— 文件或文件夹的最后访问时间,从新纪元到访问时的秒数。

os.path.getctime(path) —— 文件或文件夹的创建时间,从新纪元到访问时的秒数。

10、查看文件大小

os.path.getsize(path) —— 文件或文件夹的大小,若是文件夹返回0

11、路径合成与拆分

os.path.split(path) —— 将路径分解为(文件夹,文件名)的元组

os.path.join(path2,path3,...) —— 将path进行组合,若其中有绝对路径,则之前的path将被删除

path='C:\Software\Python35\python.exe'
os.path.split(path) # 拆分路径
('C:\Software\Python35', 'python.exe')
os.path.split('.')
('', '.')
os.path.split('C:\Software\Python35') # 注意于下一行的区别
('C:\Software', 'Python35')
os.path.split('C:\Software\Python35\')
('C:\Software\Python35', '')
os.path.join('C:\Software\Python35', 'python.exe')
'C:\Software\Python35\python.exe'
os.path.join('C:\Software\Python35\a\b', 'C:\Software\Python35\c')
'C:\Software\Python35\c'

相关内容

热门资讯

初一男生校门口遭群殴或失聪,教... 哥哥同学辱骂母亲,辽宁鞍山13岁少年在学校门口维护哥哥与人发生争执,随后数名同龄少年一拥而上对其实施...
演唱会大量邀请票被当众焚毁,警... 极目新闻记者 杜光然5月29日,网友发帖称,有人当众焚烧大量演唱会邀请票,视频定位于温岭市体育中心。...
多所高校撤销外语学院 人工智能的发展及其他因素的影响下,外语类专业面临挑战,近年来一些高校对外语学院进行调整、重组。近日,...
解放军少将质问日方:有没有资格... 【环球时报-环球网报道 记者 郭媛丹 苏雅瑄】 “殷鉴不远,今天的世界又处在新的十字路口,我们必须警...
《给阿嬷的情书》导演被网友二创... 《给阿嬷的情书》这段解读直接破防!网友二创还原木生守桥的画面,把邮差落水,弄丢写有真相的讣告信件,解...
伊朗最高领袖顾问批特朗普背弃外... 据凤凰卫视报道,美伊谈判前景不明,伊朗最高领袖顾问雷扎伊5月30日指责美国总统特朗普第三次背弃外交原...
免去南开大学陈某院长、中山大学... 刚刚,南开大学和中山大学发布情况通报。南开大学:免去陈某院长职务南开大学通报中指出,论文第一作者郑某...
绿色算力全栈AI平台在呼和浩特...   新华社呼和浩特5月30日电(记者侯维轶)30日,绿色算力全栈AI平台——内蒙古词元交易平台在内蒙...
北京太空智算研究院在北京亦庄成... 红星资本局5月30日消息,近日,北京太空智算研究院在北京经济技术开发区(简称“北京经开区”,又称“北...
第二届西部医学科技创新学术大会... 封面新闻记者 邱添 2026年5月30日,在第十个全国科技工作者日来临之际,一场汇聚医学前沿智慧与创...