文件和文件夹的增删查改

#文件、文件夹的移动、复制、删除、重命名

#导入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() —— 获取当前活动目录,当前路径

10年积累的成都网站设计、成都网站建设、外贸网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站后付款的网站建设流程,更有华池免费网站建设让你可以放心的选择与我们合作。

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'


标题名称:文件和文件夹的增删查改
本文网址:http://ybzwz.com/article/gohjjg.html