对于文件和文件夹,我们最常做的操作分为三种:复制、移动、删除。
这三种操作可以通过shutil和os模块中的函数实现,下面通过对hello.txt的操作为例进行说明:
代码语言:javascript复制*复制:shutil.copy(source, destination) #复制文件
shutil.copytree(source, destination) #复制文件夹
*移动:shutil.move(source, destination);
*删除:os.unlink() #删除文件
os.rmdir() #删除文件夹,文件夹必须为空
shutil.rmtree() #删除文件夹,包含文件夹及文件夹下的所有文件
hello.txt位于"C:mywebchapter01"目录下:
>>> import shutil, os
>>> os.chdir(r'C:mywebchapter01')
>>> os.listdir()
['Calculator.php', 'ex1_1.php', 'hello.txt', 'welcome.php', '_notes']
一、复制
1. 复制文件
#复制hello.txt到"C:mywebchapter02"目录下
>>> shutil.copy('hello.txt', r'C:mywebchapter02')
'C:\myweb\chapter02\hello.txt'
#复制hello.txt到"C:mywebchapter02"目录并修改名称为hello_01.txt
>>> shutil.copy('hello.txt', r'C:mywebchapter02hello_01.txt')
'C:\myweb\chapter02\hello_01.txt'
2. 复制文件夹
#复制"C:mywebchapter01"到"C:mywebchapter02"目录下
>>> shutil.copytree(r'C:mywebchapter01', r'C:mywebchapter02chapter01')
'C:\myweb\chapter02\chapter01'
#复制"C:mywebchapter01"到"C:mywebchapter02"目录下并修改名称为chapter01_bak
>>> shutil.copytree(r'C:mywebchapter01', r'C:mywebchapter02chapter01_bak')
'C:\myweb\chapter02\chapter01_bak'
二、移动
1. 移动文件
#移动hello.txt到"C:mywebchapter02"目录下,并修改名称为hello_02.txt
>>> shutil.move('hello.txt', r'C:mywebchapter02hello_02.txt')
'C:\myweb\chapter02\hello_02.txt'
2. 移动文件夹
#创建test文件夹并将其移动至chapter02文件夹下
>>> os.mkdir(r'C:mywebchapter01test')
>>> os.path.isdir(r'C:mywebchapter01test')
True
>>> shutil.move(r'C:mywebchapter01test', r'C:mywebchapter02test')
'C:\myweb\chapter02\test'
三、 删除
1. 删除文件
#删除文件hello_02.txt
>>> os.chdir(r'C:mywebchapter02')
>>> os.listdir(os.getcwd())
['CalculatorII.php', 'chapter01', 'chapter01_bak', 'circleCal.php', 'hello.txt', 'hello_01.txt', 'hello_02.txt', 'Square.php', 'test']
>>> os.unlink('hello_02.txt')
>>> os.listdir(os.getcwd())
['CalculatorII.php', 'chapter01', 'chapter01_bak', 'circleCal.php', 'hello.txt', 'hello_01.txt', 'Square.php', 'test']
2. 删除空文件夹
#删除空文件夹test
>>> os.rmdir(r'./test')
>>> os.listdir(os.getcwd())
['CalculatorII.php', 'chapter01', 'chapter01_bak', 'circleCal.php', 'hello.txt', 'hello_01.txt', 'Square.php']
3. 删除非空文件夹
#删除非空文件夹chapter01
>>> shutil.rmtree(r'C:mywebchapter01')