以前都是使用os模块,这里介绍更加的精细的模块,是os的"升级版" - shutil
shutil 是 python 的 内置模块,不需要额外安装。
from shutil import copy
# 核心方法 -> 源地址赋值到目标地址
copy(src_path, dist_path)
import os
from shutil import copy
'''
源地址文件夹,复制到目标文件夹
'''
def copy_files(src_dir, dest_dir):
for file in os.listdir(src_dir):
if file.endswith('.txt'):
src_file = os.path.join(src_dir, file)
dest_file = os.path.join(dest_dir, file)
copy(src_file, dest_file)
if __name__ == '__main__':
src_dir = 'C:/Users/user/Documents/txt'
dest_dir = 'C:/Users/user/Documents/txt_copy'
copy_files(src_dir, dest_dir)
当目标文件夹是一个文件的时候,就是文件内容的复制,将源文件的文件内容复制给目标文件
import os
from shutil import copyfile
'''
文件内容的复制
copyfile(src - 源文件路径, dst - 目标文件路径)
'''
def copy_file_content(src, dst):
copyfile(src, dst)
if __name__ == '__main__':
src = input("Enter the source file path: ")
dst = input("Enter the destination file path: ")
copy_file_content(src, dst)
print("File content copied successfully!")
所谓文件的裁剪就是从一个目标路径的文件A移动到目标路径B中去。
A和B名称可能是相同的也可能是不同的,当移动后A目标这个路径下就不存在这个文件了,只存在目标B这个文件下。
当然,它也支持目标A裁剪到直接裁剪到目标A ,但是它可以支持将目标A这个路径下的这个文件名称进行改变,所以它也是一个变相的重命名。
from shutil import move
move(src, dist)
import os
from shutil import move
def move_files(src_dir, dest_dir):
for filename in os.listdir(src_dir):
if filename.endswith('.txt'):
src_file = os.path.join(src_dir, filename)
dest_file = os.path.join(dest_dir, filename)
move(src_file, dest_file)
if __name__ == '__main__':
src_dir = '/home/user/Documents/office/txt'
dest_dir = '/home/user/Documents/office/txt_files'
move_files(src_dir, dest_dir)
单文件的删除一般使用os的remove模块
from os import remove
def remove_file(file_path):
remove(file_pat