python 移动文件失败_Python文件移动错误

这是一个非常笨拙的脚本,用于将文件移动到已排序的目录中。但我猜出了什么问题。如果您没有使用Desktop作为当前的工作目录来运行它(这意味着您在运行脚本时不在该目录中),那么这些文件夹是在其他位置创建的。然后当你的文件开始移动时,目录不存在,所以它只是把它们作为新文件相互移动。在

不幸的是,你无法逆转这种伤害。你唯一的希望就是你有备份。在

让我更详细地解释一下你剧本的一些部分。。。在pwd = os.getcwd()

working_path = 'C:\\Users\\grayson\\Desktop'

如果pwd与working_path不同,则脚本中的所有内容都将出错。此外,您应该始终使用正斜杠,即使在windows上也是如此。它的有效性和路径构建更容易:working_path = 'C:/Users/grayson/Desktop'

文件夹创建部分:

^{pr2}$

您不能确保这些目录实际上是在您的working_path变量下创建的。你可以这样写:# AFTER

def create_folders():

for fol_name in folders.itervalues():

fol_path = os.path.join(working_path, fol_name)

if not os.path.isdir(fol_path):

os.mkdir(fol_path)

你可能会把它保存在那里。它将把目录专门放在Desktop下,而不是从哪里运行脚本。在# BEFORE

split_name = fname.split('.')

exten = split_name[len(split_name)-1]

为了得到扩展名需要大量的输入。你本可以通过以下方式使之更简单:# AFTER

exten = fname.split('.')[-1]

最后,移动文件的部分:# BEFORE

if exten == 'pdf':

shutil.move(wp + '\\' + fname, wp + '\\' + folders['pdf'])

elif exten == 'jpg' or exten == 'png' or exten == 'gif':

shutil.move(wp + '\\' + fname, wp + '\\' + folders['img'])

else:

print 'Sumin else'

您通过添加斜杠来构建路径,并且只在目录名中构建目标。如果该目录不存在,它将假定它是一个文件。生成的文件应具有特定的名称:# AFTER

src = os.path.join(wp, fname)

key = None

if exten == 'pdf':

key = 'pdf'

elif exten in ('jpg', 'png', 'gif'):

key = 'img'

if key:

shutil.move(src, os.path.join(wp, folders['img'], fname))

else:

print 'Sumin else'

这样,如果目录不存在,它肯定会失败。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值