Python - 将所有文件从子文件夹移动到主文件夹
本文将讨论如何使用Python将所有文件从子文件夹移动到主文件夹。该方法很简单,它类似于使用Python将文件从一个文件夹移动到另一个文件夹,不同之处在于这里将子文件夹的主文件夹或父文件夹作为目标传递。
使用的模块
- OS 模块: Python中的 OS 模块提供与操作系统交互的功能。它提供了一种使用操作系统相关功能的可移植方式。 os.path 是 OS 模块的子模块。
- Shutil 模块: Python中的 Shuutil 模块提供了许多关于文件和文件集合的功能。该模块属于Python标准实用程序模块。该模块有助于自动化复制和删除文件和目录的过程。
使用的功能
- Python中的os.path.join()方法智能地连接一个或多个路径组件。此方法连接各种路径组件,并在每个非空部分(最后一个路径组件除外)之后使用一个目录分隔符 ('/')。如果要加入的最后一个路径组件为空,则在末尾放置一个目录分隔符 ('/')。如果路径组件表示绝对路径,则所有先前加入的组件都将被丢弃,并从绝对路径组件继续加入。
Syntax: os.path.join(path, *paths)
Parameter:
path: A path-like object representing a file system path.
*path: A path-like object representing a file system path. It represents the path components to be joined.
A path-like object is either a string or bytes object representing a path.
Note: The special syntax *args (here *paths) in function definitions in python is used to pass a variable number of arguments to a function.
Return Type: This method returns a string which represents the concatenated path components.
- Python中的os.listdir()方法用于获取指定目录下所有文件和目录的列表。如果我们不指定任何目录,则将返回当前工作目录中的文件和目录列表。
Syntax: os.listdir(path)
Parameters:
path (optional) : path of the directory
Return Type: This method returns the list of all files and directories in the specified path. The return type of this method is list.
- Shutil.move()方法 递归地将文件或目录(源)移动到另一个位置(目标)并返回目标。如果目标目录已经存在,则将 src 移动到该目录中。如果目标已经存在但不是目录,那么它可能会根据 os.rename() 语义被覆盖。
Syntax: shutil.move(source, destination, copy_function = copy2)
Parameters:
source: A string representing the path of the source file.
destination: A string representing the path of the destination directory.
copy_function (optional): The default value of this parameter is copy2. We can use other copy function like copy, copytree, etc for this parameter.
Return Value: This method returns a string which represents the path of newly created file.
要将文件从子文件夹移动到主文件夹,我们首先必须导入所需的包,然后指定源目录和目标目录的路径。作为目标目录,请记住传递主文件夹的目标。现在添加规定以递归地将文件从源移动到目标。
源文件夹(子文件夹):
目标文件夹(主文件夹):
程序 :
Python3
import shutil
import os
# Define the source and destination path
source = "Desktop/content/waste/"
destination = "Desktop/content/"
# code to move the files from sub-folder to main folder.
files = os.listdir(source)
for file in files:
file_name = os.path.join(source, file)
shutil.move(file_name, destination)
print("Files Moved")
输出:
Files Moved