簡體   English   中英

如何將一堆同名文件復制到一個文件夾?

[英]How to copy a bunch of files with same name to a folder?

我有一些具有不同擴展名的文件。 這些文件位於不同的文件夾中並且具有相同的名稱。 我想復制這些文件並同時重命名它們。

我有:

  • 文本文件
  • ti.xlxsx
  • ti.pdf

我想將其重命名為:

  • 存檔_1.txt
  • Archive_2.xlsx
  • Archive_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來處理文件系統,並使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM