Python 移动文件到指定路径

需求:将指定的文件从指定目录移动到用户指定的目标目录。

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() 的工作原理是:

  1. 如果目标位置在同一文件系统上,它实际上是对原始文件或目录进行重命名。
  2. 如果目标位置在不同的文件系统上,它首先会复制原始文件或目录到目标位置,然后删除原始位置上的文件或目录。

因此,可以认为它是一个“移动”操作,而不仅仅是“拷贝”操作。


要在Python中实现文件或目录的拷贝,可以使用 shutil 模块中的 copy()copytree() 函数。

  1. 拷贝文件:
    使用 shutil.copy(src, dst)。这将从 src(源文件)拷贝到 dst(目标位置)。

    示例:

    import shutil
    
    shutil.copy("source_file.txt", "destination_folder/")
    

    注意:如果 dst 是一个目录,那么源文件将会被拷贝到这个目录下,并保持原始的文件名。

  2. 拷贝目录:
    使用 shutil.copytree(src, dst)。这将从 src(源目录)拷贝到 dst(目标位置)。目标目录 dst 不应该已经存在。

    示例:

    import shutil
    
    shutil.copytree("source_folder/", "destination_folder/")
    

以上就是在Python中拷贝文件和目录的基本方法。

你可能感兴趣的:(Python,python)