파이썬은, 이동, 삭제 및 이름 바꾸기 파일 및 폴더를 복사, 작성

본 논문에서는 이동, 삭제 및 이름 바꾸기 파일, 복사, 생성을 포함하여, 컴퓨터의 파일 및 폴더 작업에 파이썬을 사용하는 방법을 배우게.

os.mkdir () 폴더 생성

# 도입 os 모듈, 다음 코드는 기본적으로 소개되었습니다

1
4
5
import  os
os.mkdir( '新的文件夹' )
'''注意,如果当前已经有这个文件夹了,就会报错
FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: '新的文件夹'
所以我们可以在创建文件夹之前先判断是否存在,不存在再新建。'''

 

os.path.exists는 ( '폴더 이름') 결정 폴더가 될 수 있습니다

1
4
if  not  os.path.exists( '新的文件夹' ):
     os.mkdir( '新的文件夹' )
else :
     print ( '该文件夹已存在,无法创建' )

 

os.makedirs ()는 여러 폴더를 만들 수 있습니다

가장 안쪽 층 폴더에 오류가있는 경우, 여러 폴더의 시간을 만들기

1
os.makedirs( '第一层文件夹/第二层文件夹/第三层文件夹' )

 

복사, 이동, 이름 변경 모듈 필요성의 또 shutil

복사 및 이동 파일 (이름 바꾸기)

() 파일 shutil.copy 복사

shutil.copy ( '파일 이름', '대상 폴더) 아래의 대상 폴더에

shutil.copy ( '파일 이름', '대상 폴더 / 새의 파일 이름') 대상 폴더에 복사 한 다음 이름 바꾸기

이동 파일) (shutil.move

아래의 대상 폴더에 shutil.move ( '파일 이름', '대상 폴더) 이동

shutil.move ( '파일 이름', '대상 폴더 / 새의 파일 이름')의 대상 폴더로 이동 한 다음 이름 바꾸기

 

1
4
5
6
(7)
8
9
(10)
(11)
(12)
(13)
(14)
# 引入shutil模块
import  shutil
# 复制或移动到目的文件夹下面
# 如果只写目标文件夹的名称的话,如果目标文件夹不存在,则会将复制或移动之后的文件重命名为目标文件夹的名称
# demo.txt 复制到 新的文件夹 下面
shutil.copy( 'demo.txt' , '新的文件夹' )
# file1.txt 移动到 新的文件夹 下面
shutil.move( 'file1.txt' , '新的文件夹' )
# 复制或移动到目的文件夹下面之后,重命名
# 如果目标文件夹不存在,则会报错
# demo.txt 复制到 新的文件夹 下面,并重命名为new1.txt
shutil.copy( 'demo.txt' , '新的文件夹/new1.txt' )
# file2.txt 移动到 新的文件夹 下面,并重命名为 new2.txt
shutil.move( 'file2.txt' , '新的文件夹/new2.txt' )

대상 폴더가 존재하지 않는, 또는 복사 및 존재하지 않는 파일을 이동할 경우, 파일 복사 및 이동하면, 에러 될 것입니다.

모바일에 복사하고 폴더가 다음, 다른 처리 결과가있는 파일이 존재 이동합니다. 같은 이름이 존재하는 경우, 모든 파일이 성공적으로 복사하고 대상 파일을 덮어 쓸 수 있습니다. 파일을 이동하는 동안, 같은 이름의 파일이 오류를 발생합니다.

1
4
5
6
(7)
8
9
# 建议在复制或移动之前做相应判断
if  os.path.exists( '新的文件夹' ):
     shutil.copy( 'demo.txt' , '新的文件夹' )
else :
     print ( '目的文件夹不存在,无法复制' )
if  os.path.exists( '新的文件夹' ):
     shutil.move( 'file1.txt' , '新的文件夹' )
else :
     print ( '目的文件夹不存在,无法移动' )

 

복사 및 이동 폴더 (및 이름 변경)

모든 파일 및 폴더와 폴더에 복사 및 이동 폴더를 이동하거나 대상 경로에 복사합니다.

때문에 복사하고 원래 이름을 쓸 수 있도록, 이름 폴더에 파일을 이동 한 후 채우기 위해 필요, 당신은 또한 새 폴더 이름을 쓸 수 있습니다.

1
4
5
6
(7)
8
9
(10)
(11)
(12)
(13)
(14)
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 复制文件夹 shutil.copytree()
shutil.copytree( '要复制的文件夹' '目的文件夹/要复制的文件夹' ) 复制到目的文件夹下面
shutil.copytree( '要复制的文件夹' '目的文件夹/新文件夹' ) 复制过去并重命名为 新文件夹
# 移动文件夹 shutil.move()
shutil.copytree( '要移动的文件夹' '目的文件夹' ) 移动到目的文件夹下面
shutil.copytree( '要移动的文件夹' '目的文件夹/新文件夹' ) 复制过去并改名为 新文件夹
'''对于目标路径下是否有同名文件夹,shutil.copytree() 和 shutil.move 运行结果不同。
复制文件夹,目标路径下有同名文件夹,会报错。
移动文件夹,目标路径下有同名文件夹,则会移动到同名文件夹的下面,如果同名文件夹下面还有一个同名文件夹,才会报错'''
# 假设 文件夹1 要移动到的 新文件夹/文件夹1 是存在的
shutil.move( '文件夹1' , '新文件夹/文件夹1' )
# 运行之后,文件夹结构会变成:新文件夹/文件夹1/文件夹1
# 如果 新文件夹/文件夹1/文件夹1 也存在,则会报错
# 所以建议用下面的方法判断是否存在同名文件夹
import  os
import  shutil
if  not  os.path.exists( '新的文件夹/文件夹1' ):
     shutil.copytree( '文件夹1' '新的文件夹/文件夹1' )
else :
     print ( '该文件夹已存在,无法复制' )
# 对于移动文件夹来说,则下面两个的执行结果是一样的
if  not  os.path.exists( '新的文件夹/文件夹1' ):
     shutil.move( '文件夹1, ' 新的文件夹')
else :
     print ( '该文件夹已存在,无法移动' )
if  not  os.path.exists( '新的文件夹/文件夹1' ):
     shutil.move( '文件夹1, ' 新的文件夹')
else :
     print ( '该文件夹已存在,无法移动' )

 

重命名 os.rename()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 首先要引入os模块,如果程序前面已经引入了,则不用重复引入
import  os
# demo.txt 重命名为 new.txt
os.rename( 'demo.txt' , 'new.txt' )
# 文件夹1 重命名为 文件夹2
os.rename( '文件夹1' , '文件夹2' )
# 如果目的文件夹不是当前文件夹下面,则相当于移动并重命名,跟shutil.move()执行效果一样
# 所以下面这两个语句运行结果是相同的
# demo.txt 重命名为 new.txt,并移动到 目的文件夹 下面
os.rename( 'demo.txt' , '目的文件夹/new.txt' )
shutil.move( 'demo.txt' , '目的文件夹/new.txt' )
# 文件夹1 移动到 新的文件夹 下面
os.rename( '文件夹1' , '新的文件夹/文件夹1' )
shutil.move( '文件夹1' , '新的文件夹/文件夹1' )
# 同样重命名之前需要判断是否有同名文件和文件夹,这里不再重复了

 

删除

删除文件 os.remove()

1
2
3
4
# 删除 file1.txt
os.remove( 'file1.txt' )
# 删除 文件夹1 下面的 file1.txt
os.remove( '文件夹1/file1.txt' )

 

删除文件夹 shutil.rmtree()

1
2
# 删除 文件夹1
shutil.rmtree( '文件夹1' )

추천

출처www.cnblogs.com/itzzp/p/12422242.html