python - 将文件重命名为另一个磁盘
问题描述
我的 python 脚本在分区 D 上,我想重命名分区 E 上文件夹中的文件:
由于空间有限,我无法将文件夹/文件移动到 D。
path= "E:\\A"
for f in os.listdir(path):
f_name, f_ext = os.path.splitext(f)
empty, f_number, f_title = (f_name.split('_'))
f_title = f_title.strip()
if len(f_number) == 2:
f_number = '0' + f_number
f_filename = '_{}_{}{}'.format(f_number, f_title, f_ext)
file = os.path.join(path, f)
os.rename(file, f_filename)
我得到错误:
[WinError 17] 系统无法将文件移动到其他磁盘驱动器:
我在这里找到了使用shutils的答案。所以我尝试了:
src = os.path.join(path, f)
path2 = "E:\\A2"
dst = os.path.join(path2, f_filename)
shutil.move(src, dst)
[Errno 2] 没有这样的文件或目录:“E:\A2\filename”
这很奇怪,因为我从 A 中取出文件并使用新文件名将其移动到 A2,所以显然 A2 上不存在。
解决方案
从错误消息来看,我怀疑问题是您试图在"A2"
创建该目录之前将这些文件移动到该目录中。如果A2
还不存在,您可以使用os.mkdir
.
有关详细信息,请参阅此问题。
推荐阅读
- authentication - kubernetes 用户在 kubeconfig 和 basic-auth-file 中的区别?
- mysql - 如何将 mysql 结果行存储为包含表格格式字符串的变量?
- c - 目录条目和链表
- python - 这个程序有什么错误?
- r - 将具有范围或值的字符转换为 R 中仅包含值的向量
- python - Python Writerrow 到 CSV(从 For 循环输出到列中)
- c - 在“关于 size_t 和 ptrdiff_t”中解释这段话
- html - Vuejs背景图像不起作用
- lua - 通过一个名称/调用引用两个单独的变量
- asp.net-mvc-4 - 在 Asp.net MVC 中调用普通方法以插入没有 ActionResult 重定向的记录