python - 如何将一堆同名文件复制到一个文件夹中?
问题描述
我有一些具有不同扩展名的文件。这些文件位于不同的文件夹中并且具有相同的名称。我想复制这些文件并同时重命名它们。
我有:
- ti.txt
- ti.xlxsx
- ti.pdf
我想将其重命名为:
- 存档_1.txt
- 存档_2.xlsx
- 存档_3.pdf
PS:我会在这个新文件夹中有几个相同类型的文件
我研究并找到了 Shutil 库来编写代码,但我遇到了麻烦。有人有什么想法可以开始吗?
这是我尝试过的
# importing os module
import os
# importing shutil module
import shutil
# path
path = r'D:\Usuarios\0025429\Desktop\old_folder'
# List files and directories
# in '/home/User/Documents'
print("Before copying file:")
print(os.listdir(path))
# Source path
source = r"D:\Usuarios\0025429\Desktop\old_folder\IQ.txt"
source = r"D:\Usuarios\0025429\Desktop\old_folder\IQ.xlsx"
source = r"D:\Usuarios\0025429\Desktop\old_folder\IQ.docx"
# Print file permission
# of the source
perm = os.stat(source).st_mode
print("File Permission mode:", perm, "\n")
# Destination path
destination = r"D:\Usuarios\0025429\Desktop\new_folder"
# Copy the content of
# source to destination
dest = shutil.copy(source, destination)
# List files and directories
# in "/home / User / Documents"
print("After copying file:")
print(os.listdir(path))
# Print file permission
# of the destination
perm = os.stat(destination).st_mode
print("File Permission mode:", perm)
# Print path of newly
# created file
print("Destination path:", dest)
解决方案
您可以使用pathlib
文件系统和copy()
fromshutil
来复制每个文件。
from shutil import copy
from pathlib import Path
src = Path(r".\dir1")
dst = Path(r".\dir2")
idx = 0
for file in src.iterdir():
if file.is_file():
idx += 1
copy(file, (dst / f"Archive_{idx}").with_suffix(file.suffix))
要仅重命名具有给定名称的文件,请使用下一个代码:
from shutil import copy
from pathlib import Path
src = Path(r".\dir1")
filename = "123"
dst = Path(r".\dir2")
idx = 0
for file in src.iterdir():
if file.is_file() and file.stem == filename:
idx += 1
copy(file, (dst / f"Archive_{idx}").with_suffix(file.suffix))
推荐阅读
- spring - Spring Security 向所有端点添加过滤器,除了一个
- r - 如何格式化 tagList 以在 RShiny 中进行按列布局?
- java - OptaPlanner 中具有优先级和车辆故障的 CVRPTW
- r - 如何从 R 中长度不同的两个数据框中找到元素?
- typescript - 我可以有一个 Typescript 函数,它返回一个标量或数组值,而调用者不需要转换输出
- sql - 1 记录为多条记录
- python - 用通过迭代计算的函数填充 numpy 矩阵
- java - Java 2d:减慢旋转速度(就像命运之轮)
- php - 如何上传图片随机名称?
- javascript - 强制 selectize.js 仅显示以 Shiny 中的用户输入开头的选项