需求:将指定的文件从指定目录移动到用户指定的目标目录。
shutil 是 Python 标准库中的一个模块,它提供了许多文件和文件集合的高级操作。基本上,它可以帮助我们执行文件操作,例如复制、移动、更名和删除。它旨在与 os 模块一起使用,以提供更易于使用的接口。
import os
import shutil
# 定义要移动的文件列表
FILES = [
"abs.c",
"mod.c",
"union-struct.c",
"neg.c",
"imod.c",
"add.c",
"cmp.c"
]
# 使用列表推导式替换 .c 为 .s
FILES = [filename.replace('.c', '.s') for filename in FILES]
print(FILES)
print("------------------")
# 询问用户源目录和目标目录
source_dir = input("请输入源目录的路径: ")
target_dir = input("请输入目标目录的路径: ")
# 检查源目录和目标目录是否存在
if not os.path.exists(source_dir):
print("源目录不存在!")
elif not os.path.exists(target_dir):
print("目标目录不存在!")
else:
for file in FILES:
source_path = os.path.join(source_dir, file)
target_path = os.path.join(target_dir, file)
# 检查文件是否存在于源目录
if os.path.exists(source_path):
# 使用 shutil.move 来移动文件
shutil.move(source_path, target_path)
print(f"已移动 {file} 到 {target_dir}")
else:
print(f"文件 {file} 在源目录 {source_dir} 中不存在!")
print("所有文件都已处理完毕.")
shutil.move()
是直接移动文件或目录到指定的位置。这意味着原始文件或目录将不再存在于其原始位置,而是存在于新的位置。
具体来说,shutil.move()
的工作原理是:
因此,可以认为它是一个“移动”操作,而不仅仅是“拷贝”操作。
要在Python中实现文件或目录的拷贝,可以使用 shutil
模块中的 copy()
和 copytree()
函数。
拷贝文件:
使用 shutil.copy(src, dst)
。这将从 src
(源文件)拷贝到 dst
(目标位置)。
示例:
import shutil
shutil.copy("source_file.txt", "destination_folder/")
注意:如果 dst
是一个目录,那么源文件将会被拷贝到这个目录下,并保持原始的文件名。
拷贝目录:
使用 shutil.copytree(src, dst)
。这将从 src
(源目录)拷贝到 dst
(目标位置)。目标目录 dst
不应该已经存在。
示例:
import shutil
shutil.copytree("source_folder/", "destination_folder/")
以上就是在Python中拷贝文件和目录的基本方法。