复制C盘A文件夹下的所有pdf文件到D分区B文件夹下面,B文件夹下如果于同名文件自动重新命名后保存,Python代码
时间: 2023-08-31 09:38:09 浏览: 110
### 回答1:
你可以使用 Python 的 shutil 模块来完成这个操作。
```python
import os
import shutil
src_folder = 'C:\\A\\'
dst_folder = 'D:\\B\\'
for filename in os.listdir(src_folder):
if filename.endswith('.pdf'):
src_file = os.path.join(src_folder, filename)
dst_file = os.path.join(dst_folder, filename)
if os.path.exists(dst_file):
# 修改文件名称
dst_file = os.path.join(dst_folder, 'new_' + filename)
shutil.copy2(src_file, dst_file)
```
这段代码会把 C 盘 A 文件夹下的所有 pdf 文件复制到 D 分区 B 文件夹下面,如果 B 文件夹下有同名文件,会自动重新命名后保存。
### 回答2:
import os
import shutil
def copy_pdfs(source_dir, target_dir):
for root, dirs, files in os.walk(source_dir):
for file in files:
if file.endswith(".pdf"):
source_path = os.path.join(root, file)
target_path = os.path.join(target_dir, file)
if os.path.exists(target_path):
file_name, file_ext = os.path.splitext(file)
renamed_file = file_name + "(1)" + file_ext
target_path = os.path.join(target_dir, renamed_file)
shutil.copy2(source_path, target_path)
# 设置源文件夹和目标文件夹路径
source_folder = "C:/A"
target_folder = "D:/B"
copy_pdfs(source_folder, target_folder)
以上代码是通过使用Python的os和shutil库来复制C盘A文件夹下的所有pdf文件到D分区B文件夹下,并根据需要自动重新命名同名文件。
首先,定义了一个名为copy_pdfs()的函数,接受源文件夹路径和目标文件夹路径作为参数。
在函数内部,通过使用os.walk()函数遍历源文件夹下的所有文件和文件夹。然后,对于每个文件,使用endswith()方法来判断是否是pdf文件。
如果是pdf文件,则使用os.path.join()方法构建源文件路径和目标文件路径,并使用shutil.copy2()函数将源文件复制到目标路径下。
如果目标路径已经存在同名文件,则使用os.path.splitext()方法将文件名和文件扩展名分开。然后,通过在文件名后面添加"(1)",再加上原本的文件扩展名,得到一个新的文件名。
最后,使用os.path.join()方法重新构建目标文件路径,并使用shutil.copy2()函数将源文件复制到新的目标路径下。
以上是一个简单的Python代码示例,用于复制C盘A文件夹下的所有pdf文件到D分区B文件夹下,并采取适当的措施处理同名文件。
### 回答3:
下面是用Python实现将C盘A文件夹下的所有pdf文件复制到D分区B文件夹,并在B文件夹下进行同名文件的自动重新命名保存的代码:
```python
import os
import shutil
# 获取C盘A文件夹下的所有pdf文件路径
source_folder = "C:/A"
pdf_files = [os.path.join(source_folder, file) for file in os.listdir(source_folder) if file.endswith(".pdf")]
# 设置目标文件夹路径
destination_folder = "D:/B"
# 遍历复制pdf文件到目标文件夹
for pdf_file in pdf_files:
# 获取pdf文件名
pdf_file_name = os.path.basename(pdf_file)
# 设置目标文件路径
destination_file = os.path.join(destination_folder, pdf_file_name)
# 若目标路径已存在同名pdf文件,则进行重新命名
counter = 1
while os.path.exists(destination_file):
destination_file = os.path.join(destination_folder, f"{os.path.splitext(pdf_file_name)[0]}_{counter}.pdf")
counter += 1
# 复制pdf文件到目标文件夹
shutil.copy(pdf_file, destination_file)
```
以上代码首先获取C盘A文件夹下的所有pdf文件的路径,然后遍历这些pdf文件并逐个复制到D分区B文件夹下。如果在B文件夹下已经存在同名的pdf文件,则会自动对复制的文件进行重新命名,新命名的文件名形式为"原文件名_数字.pdf",数字递增。
阅读全文