【发布时间】:2018-09-15 07:55:36
【问题描述】:
我的 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 上不存在。
【问题讨论】:
-
file和f_filename显示的值与调用os.rename(file, f_filename)之前一样吗? -
file 是文件的原始名称,f_file_name 是新名称;如果我在同一个分区上工作正常;
-
嗯是的....但是您的错误表明您没有发出指定E驱动器的重命名...这就是为什么我要求您检查这些值的原因...没有什么可以阻止等同于
rename E:\test.txt E:\test2.txt... 的重命名命令(即使您使用的是 C 或 D 或其他) -
你是对的,我附加了初始文件的路径,但没有附加到 f_filename,考虑到路径是已知的,并且只更改了文件名
标签: python python-3.x python-os