📜  在您的系统上自动移动文件

📅  最后修改于: 2021-10-19 05:14:35             🧑  作者: Mango

想象一下这样的情况:您有一个文件夹,其中包含多种类型的文件,如 txt、mp3 等。您决定清理这些乱七八糟的文件,并以图像在一个文件夹中而歌曲在另一个文件夹中的方式组织它们。您是否会根据文件类型移动它们,即移动数 = 文件数。不,我不会这样做:)。

这个任务可以通过编写这个Python脚本来自动化,它可以自动创建一个单独的目录并将文件移动到各自的目的地。

请注意,您需要在系统上安装Python 2。该脚本使用名为 os 的模块,它允许我们使用特定于操作系统的功能。请注意,您需要在系统上设置Python ,然后才能完成所有这些操作。为此,请按照以下步骤操作:

1)从这里下载Python ; https://www.Python.org/下载/
(我更喜欢 2.7,因为它是一个稳定版本)
2) 安装它。转到 C:( Windows 所在的位置并获取Python文件夹的路径(类似于 C:\Python27)
3)转到我的电脑(或这台电脑),转到高级系统设置,在那里搜索变量路径,然后单击编辑。
4) 将出现一个带有路径的框,将光标滚动到已经存在的路径直到最后并添加;C:\Python27 (即 ; 然后是 C 驱动器中Python文件夹的路径)。
5) 单击保存或确定。在您的 C:\ 中创建一个名为 Pyprog(或其他任何名称)的文件夹,在这里我们将存储我们所有的Python程序,打开 cmd 并键入 cd C:\Pyprog然后运行一个名为 first.py 的文件(每个扩展名为 .py 的Python程序),运行Python first.py。

Python代码直接链接– https://ide.geeksforgeeks.org/9bY2Mm

Python
# Ptyhon program to organize files of a directory
import os
import sys
import shutil
 
# This function organizes contents of sourcePath into multiple
# directories using the file types provided in extensionToDir
def OrganizeDirectory(sourcePath, extensionToDir):
    if not os.path.exists(sourcePath):
        print ("The source folder '" + sourcePath +
              "' does not exist!!\n")
    else:
        for file in os.listdir(sourcePath):
            file = os.path.join(sourcePath, file)
 
            # Ignore if its a directory
            if os.path.isdir(file):
                continue
 
            filename, fileExtension = os.path.splitext(file)
            fileExtension = fileExtension[1:]
 
            # If the file extension is present in the mapping
            if fileExtension in extensionToDir:
 
                # Store the corresponding directory name
                destinationName = extensionToDir[fileExtension]
                destinationPath = os.path.join(sourcePath, destinationName)
 
                # If the directory does not exist
                if not os.path.exists(destinationPath):
                    print ("Creating new directory for `" + fileExtension +
                          "` files, named - `" + destinationName + "'!!")
 
                    # Create a new directory
                    os.makedirs(destinationPath)
 
                # Move the file
                shutil.move(file, destinationPath)
 
def main():
 
    if len(sys.argv) != 2:
        print "Usage:  "
        return
 
    sourcePath = sys.argv[1]
 
    extensionToDir = {}
    extensionToDir["mp3"] = "Songs"
    extensionToDir["jpg"] = "Images"
 
    print("")
    OrganizeDirectory(sourcePath, extensionToDir)
 
if __name__ == "__main__":
    main()


ekta1

请注意,在上图中,在执行脚本时创建了两个名为 Images 和 Songs 的新文件夹,并且扩展名为 mps 和 jpg 的文件现在位于所需的文件夹中

请注意,上面帖子中提到的路径是根据一般系统,您应该根据我们的要求更改路径并进行分类,但重点是更改当前工作目录,这是使用 os.chdir() 完成的。此外,可以添加更多与不同文件类型相关的 if 语句。

关于作者:Ekta 是 Geeksforgeeks 上非常活跃的贡献者。目前在德里理工大学学习。她还为www.geeksquiz.com制作了 Chrome 扩展程序,用于随机练习 mcqs。她可以通过github.com/Ekta1994 联系到

如果您还想在这里展示您的博客,请参阅 GBlog,了解 GeeksforGeeks 上的客座博客写作。