本論文では、移動、削除、名前の変更、ファイル、コピー、作成を含む、コンピュータのファイルとフォルダの操作でPythonを使用することを学びます。
os.mkdir()フォルダを作成します。
#モジュールOS導入され、次のコードは、デフォルトで導入されました
1
2
3
4
5
|
import
os
os.mkdir(
'新的文件夹'
)
'''注意,如果当前已经有这个文件夹了,就会报错
FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: '新的文件夹'
所以我们可以在创建文件夹之前先判断是否存在,不存在再新建。'''
|
os.path.exists(「フォルダ名」)は、フォルダが存在して決定することができます
1
2
3
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
2
3
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
2
3
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
2
3
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'
)
|