Python 复制文件,然后打印到其最终目标的绝对路径

Python 复制文件,然后打印到其最终目标的绝对路径,python,Python,我一直在写一段代码来帮助我整理文件。经过大量的挖掘和STACK的提问,我学到了一些东西(通过强制) 我想知道如何将这些文件复制到目标的绝对路径,而不是像我现在设置的那样复制到源:)同时,我正在了解我的代码中是否有任何错误此代码应该可以解决您的问题: import os import shutil #lets say that the extension is mp4 but you can change it to the correct one file_name = 'RRR_0010_V

我一直在写一段代码来帮助我整理文件。经过大量的挖掘和STACK的提问,我学到了一些东西(通过强制)


我想知道如何将这些文件复制到目标的绝对路径,而不是像我现在设置的那样复制到源:)同时,我正在了解我的代码中是否有任何错误

此代码应该可以解决您的问题:

import os
import shutil

#lets say that the extension is mp4 but you can change it to the correct one
file_name = 'RRR_0010_V001.mp4'
file_name_parts = file_name.split('_')
#remove the extension for the last folder in the dir
file_name_parts[2] = file_name_parts[2].replace('.mp4', '')
directory = os.path.join(file_name_parts[0],file_name_parts[1],file_name_parts[2])
try:
    os.makedirs(directory)
except FileExistsError:
    with open('errors.log', 'a') as log:
        log.write('Error: File already exists.')

shutil.copy(file_name,directory)
这将根据您的文件名创建一个目录,并将原始文件复制到其中。但是默认情况下,这在home目录中起作用,如Windows中的C:\和Linux中的
/
。但是我假设您已经知道如何将目录更改为首选文件夹。但如果你有任何疑问,请随时发表评论

编辑: 对于cwd中的所有文件,代码基本相同

import os
import shutil

#lets say that the extension is mp4 but you can change it to the correct one
def make_dir_with_file(file_name):
    file_name_parts = file_name.split('_')
    #remove the extension for the last folder in the dir
    file_name_parts[2] = file_name_parts[2].replace('.mp4', '')
    directory = os.path.join(file_name_parts[0],file_name_parts[1],file_name_parts[2])
    try:
        os.makedirs(directory)
    except FileExistsError:
        with open('errors.log', 'a') as log:
            log.write('Error: File already exists.')
    shutil.copy(file_name,directory)

for file in os.listdir(os.getcwd()):
    make_dir_with_file(file)

欢迎来到堆栈溢出和令人沮丧的计算机编程艺术!我建议你从用文字描述解决问题的步骤开始。一旦有了非常详细的分步描述,就可以开始将其转换为python代码。如果您需要学习python语法的基础知识,您应该查看python.org上的官方教程。但是我已经概述了上面的步骤?以特定的顺序?好的,现在执行这些步骤并将它们转换为Python。如果你在任何一个步骤上有困难,请随意写一个具体的问题。请务必阅读并获得一些关于如何编写一个好问题的提示。事实上,我也在努力解决这个问题:(,但不知道如何表达它。真实故事承认并不是我问题的最佳描述,同意一些错误。错误:os.listdir(os.getcwd())中的文件没有定义全局名称“FileExistError”:^IndentationError:unexpected unindent???,它在我的上运行良好。从cmd/terminal:
python3 file.py运行该文件如何?
是的,我会看看这个
import os
import shutil

#lets say that the extension is mp4 but you can change it to the correct one
def make_dir_with_file(file_name):
    file_name_parts = file_name.split('_')
    #remove the extension for the last folder in the dir
    file_name_parts[2] = file_name_parts[2].replace('.mp4', '')
    directory = os.path.join(file_name_parts[0],file_name_parts[1],file_name_parts[2])
    try:
        os.makedirs(directory)
    except FileExistsError:
        with open('errors.log', 'a') as log:
            log.write('Error: File already exists.')
    shutil.copy(file_name,directory)

for file in os.listdir(os.getcwd()):
    make_dir_with_file(file)