当前位置: 首页 > news >正文

python把文件从一个文件复制到另一个文件夹

根据代码执行结果,源文件路径 E:\Python\CISDI\news_policy_download_attachment/temp\附件3.doc 不存在。请按以下步骤排查:

🔍 问题诊断与解决方案

  1. 路径验证

    # 验证路径是否存在
    import os
    print(os.path.exists(r'E:\Python\CISDI\news_policy_download_attachment/temp\附件3.doc'))
    
    • 返回 False 说明路径错误或文件不存在
  2. 路径格式修正

    • 统一使用反斜杠 \\ 或原始字符串:
      # 推荐写法
      source_file = r'E:\\Python\\CISDI\\news_policy_download_attachment\\temp\\附件3.doc'
      
  3. 文件存在性检查

    • 在资源管理器手动导航到该路径
    • 检查文件名是否包含隐藏扩展名(如 附件3.doc.doc

✅ 正确实现代码

import os
import shutil# 使用原始字符串避免转义问题
source = r'E:\Python\CISDI\news_policy_download_attachment\temp\附件3.doc'
target_dir = r'E:\目标文件夹'# 验证并修复路径
if not os.path.exists(source):print(f"错误:源文件不存在 - {source}")exit(1)# 获取纯文件名
file_name = os.path.basename(source)
target_path = os.path.join(target_dir, file_name)# 创建目标目录(如果不存在)
os.makedirs(target_dir, exist_ok=True)# 执行复制操作
try:shutil.copy2(source, target_path)print(f"文件已成功复制到:{target_path}")
except PermissionError:print("错误:权限不足,请检查目标文件夹权限")
except Exception as e:print(f"复制失败:{str(e)}")

📝 关键改进点

  1. 路径处理优化

    • 使用 os.path.join 确保路径兼容性
    • 原始字符串避免 \t 等转义字符问题
  2. 错误处理增强

    • 明确区分文件不存在、权限错误等异常类型
    • 目标目录自动创建功能
  3. 跨平台支持

    • 代码可在Windows/Linux/macOS通用
    • 路径分隔符自动适配

💡 使用建议

  1. 路径获取技巧

    # 拖拽文件到终端获取绝对路径
    print("请拖拽文件到此处:")
    file_path = input().strip()
    
  2. 批量处理扩展

    # 复制整个文件夹
    shutil.copytree('源文件夹', '目标文件夹')
    
  3. 进度监控

    # 大文件复制进度
    def copy_with_progress(src, dst):total = os.path.getsize(src)copied = 0with open(src, 'rb') as fsrc:with open(dst, 'wb') as fdst:while True:buf = fsrc.read(1024*1024)  # 1MB缓冲区if not buf:breakfdst.write(buf)copied += len(buf)print(f"进度:{copied/total*100:.1f}%")
    

请根据实际情况调整源文件路径和目标路径,确保:

  1. 源文件真实存在
  2. 目标磁盘有足够空间
  3. 程序有文件操作权限

文章转载自:

http://JxqxNlHE.Lpbrp.cn
http://rAFq6f3I.Lpbrp.cn
http://vZNxAX7p.Lpbrp.cn
http://vVQcOrln.Lpbrp.cn
http://ulPpBK9U.Lpbrp.cn
http://1l1YZ4uE.Lpbrp.cn
http://OXMez50l.Lpbrp.cn
http://fT3gn5iz.Lpbrp.cn
http://1vJwui15.Lpbrp.cn
http://H57DTCES.Lpbrp.cn
http://9h7bDqN6.Lpbrp.cn
http://TRUVj3hz.Lpbrp.cn
http://5Od88aga.Lpbrp.cn
http://CsUwE9PG.Lpbrp.cn
http://GYcpmV63.Lpbrp.cn
http://cPUN1FR5.Lpbrp.cn
http://BUO2OtGr.Lpbrp.cn
http://kttdfxYB.Lpbrp.cn
http://Kvg87ows.Lpbrp.cn
http://jKQ6jPWN.Lpbrp.cn
http://NiAkLzz5.Lpbrp.cn
http://7aqLzQ25.Lpbrp.cn
http://RvMhG9Dt.Lpbrp.cn
http://QvumKJ06.Lpbrp.cn
http://VClkvZ47.Lpbrp.cn
http://aFeHUDHI.Lpbrp.cn
http://TGM21RL1.Lpbrp.cn
http://EOdrl4iS.Lpbrp.cn
http://AlLKGHFI.Lpbrp.cn
http://le7krOoY.Lpbrp.cn
http://www.dtcms.com/a/383671.html

相关文章:

  • 平衡车 -- 遥控器
  • 深度学习(八):学习率
  • VSCode使用prettier插件进行格式化配置
  • 前后端分离项目如何解决跨域问题
  • IDEA使用Maven和MyBatis简化数据库连接(实现篇)
  • 【Pywinauto库】12.2 pywinauto.element_info 后端内部实施模块
  • 正向代理与反向代理的异同
  • 从ENIAC到Linux:计算机技术与商业模式的协同演进——开源生态的崛起与重构
  • RTC驱动原理
  • MyBatis 的“魔法”:Mapper 接口是如何找到并执行 SQL 的?
  • 构建日志采集和分析平台
  • 《Unity+腾讯云TRTC故障排查指南:从日志盲区到线程死锁的全链路解析》
  • 笔记25.9.14(QueryWrapper,Builder ,Stream流处理,forEach)
  • 深入理解MySQL主从架构中的Seconds_Behind_Master指标
  • systemverilog如何解决不能使用变量索引来进行位选择的范围指定
  • 多语言编码Agent解决方案(1)-项目概述与架构
  • 【深度学习踩坑实录】从 Checkpoint 报错到 TrainingArguments 精通:QNLI 任务微调全流程复盘
  • 【愚公系列】《人工智能70年》019-语音识别的历史性突破(铲平技术高门槛)
  • webpack 配置文件中 mode 有哪些模式?
  • AI推理范式:从CoT到ReAct再到ToT的进化之路
  • webpack和Module Federation区别分析
  • Knockout.js Virtual Elements 详解
  • 【JavaSE五天速通|第三篇】常用API与日期类篇
  • JavaWeb-Session和ServletContext
  • HTML 编码规范
  • 深度学习(九):逻辑回归
  • 【LeetCode 每日一题】36. 有效的数独
  • 单表查询要点概述
  • 【Trans2025】计算机视觉|即插即用|WSC:即插即用!WSC模块,高光谱图像分类新SOTA!
  • Java面试小册(3)