【问题标题】:Renaming a file one another disk将文件重命名为另一个磁盘
【发布时间】: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 上不存在。

【问题讨论】:

  • filef_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


【解决方案1】:

从错误消息来看,我怀疑问题是您试图在创建该目录之前将这些文件移动到 "A2" 目录中。如果A2 尚不存在,您可以使用os.mkdir 创建它。

查看question了解更多详情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    • 2011-10-28
    • 2017-11-14
    • 2017-07-13
    • 2017-06-10
    • 2021-10-28
    • 2021-09-05
    相关资源
    最近更新 更多