Python 3.x 在python中,从特定整数值开始复制和重命名文件

Python 3.x 在python中,从特定整数值开始复制和重命名文件,python-3.x,copy,file-rename,Python 3.x,Copy,File Rename,我的代码可以工作,但有几个痛点,也许你可以帮助我理解。我想将文件从一个目录复制到另一个目录,同时重命名它们。例如: c:\path\ octo.jpeg novem.jpeg decem.jpeg 致: 我在一个粗略的谷歌搜索中写的代码如下,但我不确定为什么我需要路径变量中的“r”。“files=os.listdir(srcPath)”行我肯定不需要。这将移动文件并使用for循环中的'count'变量重命名它们,但我想从一个特定的数字开始命名每个文件,比如65。我应该使用shutil库和cop

我的代码可以工作,但有几个痛点,也许你可以帮助我理解。我想将文件从一个目录复制到另一个目录,同时重命名它们。例如:

c:\path\
octo.jpeg
novem.jpeg
decem.jpeg
致:

我在一个粗略的谷歌搜索中写的代码如下,但我不确定为什么我需要路径变量中的“r”。“files=os.listdir(srcPath)”行我肯定不需要。这将移动文件并使用for循环中的'count'变量重命名它们,但我想从一个特定的数字开始命名每个文件,比如65。我应该使用shutil库和copy2方法先复制文件,然后重命名,还是有更简单的方法

import os
from os import path

srcPath = r'C:\Users\Talyn\Desktop\New folder\Keep\New folder'
destPath = r'C:\Users\Talyn\Desktop\New folder\Keep\hold'
#files = os.listdir(srcPath)

def main():

    for count, filename in enumerate(os.listdir(srcPath)):

        dst = '{:03d}'.format(count) + ".jpeg"
        
        os.rename(os.path.join(srcPath, filename), os.path.join(destPath, dst))


if __name__=="__main__":
    
    main()
从官方网站:

字符串和字节文本都可以选择前缀字母“r”或“r”;此类字符串称为原始字符串,并将反斜杠视为文字字符

r
告诉python解释器将路径字符串中的反斜杠(
\
)视为文字字符,而不是转义字符

要根据特定编号命名文件,请执行以下操作:

dst='{:03d}'。格式(计数+你的_数)+“.jpeg”

使用来自
shutil的
copyfile

copyfile(srcPath+filename,destPath+dst)
import os
from os import path

srcPath = r'C:\Users\Talyn\Desktop\New folder\Keep\New folder'
destPath = r'C:\Users\Talyn\Desktop\New folder\Keep\hold'
#files = os.listdir(srcPath)

def main():

    for count, filename in enumerate(os.listdir(srcPath)):

        dst = '{:03d}'.format(count) + ".jpeg"
        
        os.rename(os.path.join(srcPath, filename), os.path.join(destPath, dst))


if __name__=="__main__":
    
    main()