os.rename 和 shutil.copytree 报错 FileNotFoundError: [WinError 3] 和 [Errno 2] No such file or directory

今天用 python 复制文件、修改文件名时遇到了一个问题,死活找不到文件、找不到路径,一直报错:FileNotFoundError: [WinError 3] 系统找不到指定的路径。。记录一下坑。

环境:

  • windows
  • python3.9

问题描述

使用os.renameshutil.copytree 时报错

FileNotFoundError: [WinError 3] 系统找不到指定的路径。

[Errno 2] No such file or directory

然而我很确定原文件、目标文件夹都存在

原因

windows 对路径名的长度有限制,路径名太长会报错,报找不到路径,而不是报路径名太长

解决办法

关闭 windows 对路径名长度的限制。

可以参考这篇博客

好的,以下是 osos.path shutil 模块中的一些常用函数它们的使用示例: 1. `os.listdir()`: 列出指定目录下的文件文件夹。 ```python import os path = '/Users/username/Documents' files = os.listdir(path) print(files) ``` 2. `os.mkdir()`: 创建新目录。 ```python import os path = '/Users/username/Documents/NewFolder' os.mkdir(path) ``` 3. `os.remove()`: 删除文件。 ```python import os path = '/Users/username/Documents/test.txt' os.remove(path) ``` 4. `os.rename()`: 重命名文件或目录。 ```python import os old_path = '/Users/username/Documents/test.txt' new_path = '/Users/username/Documents/new_test.txt' os.rename(old_path, new_path) ``` 5. `os.path.abspath()`: 返回指定路径的绝对路径。 ```python import os path = 'test.txt' abs_path = os.path.abspath(path) print(abs_path) ``` 6. `os.path.join()`: 连接两个或更多的路径名组件。 ```python import os path1 = '/Users/username/Documents' path2 = 'test.txt' full_path = os.path.join(path1, path2) print(full_path) ``` 7. `os.path.exists()`: 判断指定路径是否存在。 ```python import os path = '/Users/username/Documents/test.txt' if os.path.exists(path): print('文件存在') else: print('文件不存在') ``` 8. `os.path.isdir()`: 判断指定路径是否为目录。 ```python import os path = '/Users/username/Documents' if os.path.isdir(path): print('是目录') else: print('不是目录') ``` 9. `shutil.copy()`: 复制文件。 ```python import shutil src_path = '/Users/username/Documents/test.txt' dst_path = '/Users/username/Desktop/test.txt' shutil.copy(src_path, dst_path) ``` 10. `shutil.move()`: 移动文件或目录。 ```python import shutil src_path = '/Users/username/Documents/test.txt' dst_path = '/Users/username/Desktop/test.txt' shutil.move(src_path, dst_path) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值