[英]How to copy a bunch of files with same name to a folder?
我有一些具有不同擴展名的文件。 這些文件位於不同的文件夾中並且具有相同的名稱。 我想復制這些文件並同時重命名它們。
我有:
我想將其重命名為:
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
來處理文件系統,並使用shutil
中的copy()
來復制每個文件。
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))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.