Python實(shí)現(xiàn)文件從一個(gè)文件夾復(fù)制到另一個(gè)文件夾的步驟詳解
根據(jù)代碼執(zhí)行結(jié)果,源文件路徑 E:\Python\CISDI\news_policy_download_attachment/temp\附件3.doc 不存在。請(qǐng)按以下步驟排查:
問題診斷與解決方案
路徑驗(yàn)證
# 驗(yàn)證路徑是否存在 import os print(os.path.exists(r'E:\Python\CISDI\news_policy_download_attachment/temp\附件3.doc'))
- 返回
False說明路徑錯(cuò)誤或文件不存在
路徑格式修正
統(tǒng)一使用反斜杠 \\ 或原始字符串:
# 推薦寫法 source_file = r'E:\\Python\\CISDI\\news_policy_download_attachment\\temp\\附件3.doc'
文件存在性檢查
- 在資源管理器手動(dòng)導(dǎo)航到該路徑
- 檢查文件名是否包含隱藏?cái)U(kuò)展名(如
附件3.doc.doc)
正確實(shí)現(xiàn)代碼
import os
import shutil
# 使用原始字符串避免轉(zhuǎn)義問題
source = r'E:\Python\CISDI\news_policy_download_attachment\temp\附件3.doc'
target_dir = r'E:\目標(biāo)文件夾'
# 驗(yàn)證并修復(fù)路徑
if not os.path.exists(source):
print(f"錯(cuò)誤:源文件不存在 - {source}")
exit(1)
# 獲取純文件名
file_name = os.path.basename(source)
target_path = os.path.join(target_dir, file_name)
# 創(chuàng)建目標(biāo)目錄(如果不存在)
os.makedirs(target_dir, exist_ok=True)
# 執(zhí)行復(fù)制操作
try:
shutil.copy2(source, target_path)
print(f"文件已成功復(fù)制到:{target_path}")
except PermissionError:
print("錯(cuò)誤:權(quán)限不足,請(qǐng)檢查目標(biāo)文件夾權(quán)限")
except Exception as e:
print(f"復(fù)制失?。簕str(e)}")
關(guān)鍵改進(jìn)點(diǎn)
路徑處理優(yōu)化
- 使用
os.path.join確保路徑兼容性 - 原始字符串避免
\t等轉(zhuǎn)義字符問題
錯(cuò)誤處理增強(qiáng)
- 明確區(qū)分文件不存在、權(quán)限錯(cuò)誤等異常類型
- 目標(biāo)目錄自動(dòng)創(chuàng)建功能
跨平臺(tái)支持
- 代碼可在Windows/Linux/macOS通用
- 路徑分隔符自動(dòng)適配
使用建議
路徑獲取技巧
# 拖拽文件到終端獲取絕對(duì)路徑
print("請(qǐng)拖拽文件到此處:")
file_path = input().strip()
批量處理擴(kuò)展
# 復(fù)制整個(gè)文件夾
shutil.copytree('源文件夾', '目標(biāo)文件夾')
進(jìn)度監(jiān)控
# 大文件復(fù)制進(jìn)度
def copy_with_progress(src, dst):
total = os.path.getsize(src)
copied = 0
with open(src, 'rb') as fsrc:
with open(dst, 'wb') as fdst:
while True:
buf = fsrc.read(1024*1024) # 1MB緩沖區(qū)
if not buf:
break
fdst.write(buf)
copied += len(buf)
print(f"進(jìn)度:{copied/total*100:.1f}%")
請(qǐng)根據(jù)實(shí)際情況調(diào)整源文件路徑和目標(biāo)路徑,確保:
- 源文件真實(shí)存在
- 目標(biāo)磁盤有足夠空間
- 程序有文件操作權(quán)限
到此這篇關(guān)于Python實(shí)現(xiàn)文件從一個(gè)文件夾復(fù)制到另一個(gè)文件夾的步驟詳解的文章就介紹到這了,更多相關(guān)Python文件從一個(gè)文件夾復(fù)制到另一個(gè)文件夾內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)批量文件分類保存的示例代碼
當(dāng)我們電腦里面的文本或者或者文件夾太多了,有時(shí)候想找到自己想要的文件,只能通過去搜索文件名,這樣還是很麻煩的。本文將通過Python語言實(shí)現(xiàn)文件批量分類保存,需要的可以參考一下2022-04-04
python實(shí)現(xiàn)文件名批量替換和內(nèi)容替換
這篇文章主要介紹了python實(shí)現(xiàn)文件名批量替換和內(nèi)容替換,第一個(gè)例子可以指定文件類型,需要的朋友可以參考下2014-03-03
Python基于socket模塊實(shí)現(xiàn)UDP通信功能示例
這篇文章主要介紹了Python基于socket模塊實(shí)現(xiàn)UDP通信功能,結(jié)合實(shí)例形式分析了Python使用socket模塊實(shí)現(xiàn)IPV4協(xié)議下的UDP通信客戶端與服務(wù)器端相關(guān)操作技巧,需要的朋友可以參考下2018-04-04

